之前,我在本地服務器上處理我的Django應用程序,並且所有設置都與django-allauth配合使用(我使用manage.py runserver
而不是nginx + gunicorn進行分段/製作)無法使用django-allauth在Facebook上登錄
現在,我在我的暫存網站上實現了django-allauth,但是我無法在我的臨時服務器上使用它(注意:在此示例中,我已將我的域名替換爲mydomain.com
)。
基本上在我點擊了http://staging.mydomain.com/accounts/login/與Facebook登錄的鏈接,它重定向到https://www.facebook.com/dialog/oauth?response_type=code&state=YXdAxg2WiIBo&redirect_uri=http%3A%2F%2Fstaging.mydomain.com%2Faccounts%2Ffacebook%2Flogin%2Fcallback%2F&client_id=1600059933550804&scope=email&auth_type=reauthenticate,我得到了以下錯誤:
給定的URL不會被應用程序配置:一個或多個 允許給定的URL不被應用程序的設置所允許。必須 與網站網址或Canvas網址相符,或者該網域必須是其中一個應用網域的子域 。
這裏是我的設置文件:
的nginx的conf文件
server {
listen 80;
server_name staging.mydomain.me;
location /static {
alias /home/myusername/sites/staging.mydomain.me/static;
}
location/{
proxy_set_header Host $host;
proxy_pass http://unix:/tmp/staging.mydomain.me.socket;
}
}
settings.py
...
SITE_ID = 1
LOGIN_REDIRECT_URL = '/'
ACCOUNT_EMAIL_REQUIRED = True
SOCIALACCOUNT_PROVIDERS = {
'facebook': {
'SCOPE': ['email'],
'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
'METHOD': 'oauth2',
'VERIFIED_EMAIL': False,
}
}
AUTH_USER_MODEL = 'users.User'
ACCOUNT_ADAPTER = 'users.adapters.AccountAdapter'
ACCOUNT_SIGNUP_FORM_CLASS = 'users.forms.UserApplicationForm'
ACCOUNT_LOGOUT_ON_GET = True
...
設置在Facebook應用程序
設置在站點[http://staging.mydomain.com/admin/sites/site/1/]
設置在社會中的應用[http://staging.mydomain.com/admin/socialaccount/socialapp/2/]