Найти - Пользователи
Полная версия: Авторизация oauth vk Django Gunicorn
Начало » Django » Авторизация oauth vk Django Gunicorn
1
Andrew82
Здравствуйте коллеги!

Не могу понять, что происходит.
Сделали авториазцию через VK в проекте, на локалке открываю http://site.ru:8000 (в вк апи ключи для site.ru:8000 прописаны)
на локалке авторизация успешно заработала, но как только сделал новое приложение в вк без порта 8000, просто http://site.ru

перенес проект на сервер с Django+Nginx+Gunicorn прописал в настройках новый апи ключ, пытаюсь авторизоваться и получаю ошибку:

После попытки авторизации на сервере с адресом http://site.ru выдается всплывающее окно с ошибкой
С следующим урлом:
https://oauth.vk.com/authorize?scope=1026&state=8be7449986d25e096483265b6b&redirect_uri=http%3A%2F%2F127.0.0.1%3A49007%2Fs-login%2Fvk&response_type=code&client_id=5016013

и сообщением:
{“error”:“invalid_request”,“error_description”:“redirect_uri has wrong domain, check application settings”}

в итоге авторизация не проходит

просто у меня на адресе 127.0.0.1:49007 работает сам проект, как видно из урла вк пытается стучаться на 127.0.0.1:49007

подскажите как забороть эту проблему? может в настройках nginx в локейшн proxy_pass или чего то другого дописать надо?
Andrew82
а может надо настроить Gunicorn на домен? сейчас работает на 127.0.0.1:49007 может правильно сделать:
import multiprocessing
bind = 'site.ru:49007'
workers = multiprocessing.cpu_count() * 2 + 1
user = 'www-data'

прописать в hosts
127.0.0.1 site.ru

и открыть порт 49007 в iptables?

уже понял что этот бред не поможет
Andrew82
Нашел решение!
Оказывается в конфиг локейшна nginx который проксирует запросы к gunicorn'y надо было добавить строчку:
proxy_set_header Host $host;
и урл сразу стал нормальным в виде имени домена, без ip адреса и порта!
т.е. сразу ведет на site.ru/soc-login …

может кому пригодится мой кусок конфига nginx проксирующий запросы к gunicorn'y:
        location / {
        proxy_pass http://127.0.0.1:49007;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        
        }
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB