2013-04-18 51 views
1

我成功使用Django Social Auth以Facebook登錄用戶。我正在嘗試實施Google OAuth2。我已經採取了所有我知道的步驟來整合它,但即使點擊Allow access,我也會遇到AuthCanceled at /complete/google-oauth2/例外情況。以下是我所做的集成:Django Social Auth(Google OAuth 2) - AuthCancelled即使點擊「允許訪問」

  • 去了Google API控制檯,註冊了我的應用程序並獲得了我的客戶端ID和客戶端密鑰。
  • 我添加了正確的返回網址http://mysite/complete/google-oauth2,之前我這樣做了,我從Google獲得了「未經授權的重定向網址」。
  • 在我的settings.py我有

    GOOGLE_OAUTH2_CLIENT_ID = '*****' 
    GOOGLE_OAUTH2_CLIENT_SECRET = '*****' 
    
    AUTHENTICATION_BACKENDS = (
        'social_auth.backends.google.GoogleOAuth2Backend', 
        'social_auth.backends.facebook.FacebookBackend', 
        'django.contrib.auth.backends.ModelBackend', 
    ) 
    
  • 我想我有其他相關設置正確,如Facebook登錄的作品,我能夠顯示窗口,在谷歌瀏覽我的應用程序名稱授權窗口等

Whan am I doing wrong?我如何修復/調試AuthCancelled異常?

回答

3

這個問題似乎是由一個奇怪的Google行爲引起的:當我最初創建我的客戶端ID時,谷歌給了我這個客戶端ID:193271111225.apps.googleusercontent.com。在與圖書館作者交談之後,他告訴我他的ID更長,所以我創建了一個具有完全相同設置的新客戶端ID。生成的新ID是193271111225-cvltnldi4hh5lmo784v2ir451b3rij7e.apps.googleusercontent.com,並且與它一起工作。這兩個ID在控制檯中看起來相同,但只有後者才起作用。

1

使用SocialAuthExceptionMiddleware中間件進行妥善處理social_auth例外

MIDDLEWARE_CLASSES = (
    ..., 
    'social_auth.middleware.SocialAuthExceptionMiddleware' 
) 
相關問題