1
我正在使用django all-auth軟件包允許用戶通過g + oauth2登錄。問題是,在服務器上,登錄導致它重定向到/ accounts/social/signup頁面,而不是直接登錄並返回到主頁。Django allauth重定向到註冊
下面是所需的代碼細節
settings.py
LOGIN_URL = '/accounts/google/login/'
LOGIN_REDIRECT_URL = '/'
SOCIALACCOUNT_QUERY_EMAIL = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_EMAIL_REQUIRED = True
SOCIALACCOUNT_PROVIDERS = {
'google': {
'SCOPE': [
'https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/userinfo.profile',
'https://www.googleapis.com/auth/plus.login',
'https://www.googleapis.com/auth/plus.me'
],
'AUTH_PARAMS': {'access_type': 'online'}
}
}
SOCIALACCOUNT_ADAPTER = 'lostndfound.views.LoginAdapter'
lostndfound.views
class LoginAdapter(DefaultSocialAccountAdapter):
def pre_social_login(self, request, sociallogin):
user = sociallogin.account.user
if user.email.split('@')[-1] not in settings.ALLOWED_LOGIN_HOSTS:
messages.error(request, "You can login only through an *** account.")
raise ImmediateHttpResponse(HttpResponseRedirect(reverse('home')))
你究竟試過了什麼?看起來你試圖通過g +創建一個新帳戶,然後你重定向到了sign_up。 在文檔中:#SOCIALACCOUNT_AUTO_SIGNUP = True #嘗試通過使用從社交帳戶提供者檢索的字段(例如用戶名,電子郵件)繞過註冊表單。如果由於重複的電子郵件地址而發生衝突,註冊表格仍然會啓動。 您是否有更多信息來查看設置有問題? – abrunet 2014-09-04 14:08:24
@abrunet我不需要任何附加信息,因此不需要註冊表單。直到現在它一直工作得很好,自動創建一個用戶並登錄。而這正是我想要的。但是,我不知道我做了什麼來搞砸這件事。 – darkryder 2014-09-04 14:10:51
難道你沒有什麼可以跟隨你的代碼中的變化嗎? :/如果你沒有登錄,可能會失敗。帳戶是否已創建?你可以檢查谷歌是否已經看到了請求,並將其添加到允許的應用程序等。你最近做過一些包升級嗎? – abrunet 2014-09-04 14:14:13