0

私のdjangoプロジェクトでは、python-social-authを使用しています。私はGithubの持つ社会的なログインを追加するトリングが、残念ながら次のエラー持っています:認証が失敗したGithubで認証に失敗しました。 python-social-auth

を:REDIRECT_URIは、このアプリケーションの登録 コールバックURLと一致しなければなりません。

完全なエラーは次のようになります。

Traceback (most recent call last): 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\exception.py", line 39, in inner 
    response = get_response(request) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response 
    response = self.process_exception_by_middleware(e, request) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response 
    response = wrapped_callback(request, *callback_args, **callback_kwargs) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\views\decorators\cache.py", line 57, in _wrapped_view_func 
    response = view_func(request, *args, **kwargs) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\views\decorators\csrf.py", line 58, in wrapped_view 
    return view_func(*args, **kwargs) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\social_django\utils.py", line 50, in wrapper 
    return func(request, backend, *args, **kwargs) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\social_django\views.py", line 28, in complete 
    redirect_name=REDIRECT_FIELD_NAME, *args, **kwargs) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\social_core\actions.py", line 41, in do_complete 
    user = backend.complete(user=user, *args, **kwargs) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\social_core\backends\base.py", line 39, in complete 
    return self.auth_complete(*args, **kwargs) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\social_core\utils.py", line 253, in wrapper 
    return func(*args, **kwargs) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\social_core\backends\oauth.py", line 386, in auth_complete 
    self.process_error(self.data) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\social_core\backends\oauth.py", line 379, in process_error 
    data['error']) 
social_core.exceptions.AuthFailed: Authentication failed: The redirect_uri MUST match the registered callback URL for this application. 
[27/Feb/2017 16:06:53] "GET /ru/complete/github/?error=redirect_uri_mismatch&error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application.&error_uri=https%3A%2F%2Fdeveloper.github.com%2Fv3%2Foauth%2F%23redirect-uri-mismatch&state=fEheCJ4QPZZuz7qHPQUKxvMWl2Rw4xTV HTTP/1.1" 500 105176 

私はGitHubの中にアプリケーションを登録し、セットが http://localhost:8000/complete/github/として、コールバックURLを設定します。

settings.py

INSTALLED_APPS = [ 
    *** 
    'social_django', # python-social-auth 
] 

AUTHENTICATION_BACKENDS = (
    'social_core.backends.github.GithubOAuth2', 
    'django.contrib.auth.backends.ModelBackend', 
) 

SOCIAL_AUTH_GITHUB_KEY = 'CLIENT ID' 
SOCIAL_AUTH_GITHUB_SECRET = 'Client Secret' 

MIDDLEWARE = [ 
    *** 
    'social_django.middleware.SocialAuthExceptionMiddleware', 
] 

TEMPLATES = [ 
    { 
     *** 
     'OPTIONS': { 
      'context_processors': [ 
       *** 
       'social_django.context_processors.backends', 
       'social_django.context_processors.login_redirect', 
      ], 
     }, 
    }, 
] 

SOCIAL_AUTH_PIPELINE = (
    'social.pipeline.social_auth.social_details', 
    'social.pipeline.social_auth.social_uid', 
    'social.pipeline.social_auth.auth_allowed', 
    'social.pipeline.social_auth.social_user', 
    'social.pipeline.user.get_username', 
    'social.pipeline.mail.mail_validation', 
    'social.pipeline.social_auth.associate_by_email', 
    'social.pipeline.user.create_user', 
    'social.pipeline.social_auth.associate_user', 
    'social.pipeline.social_auth.load_extra_data', 
    'social.pipeline.user.user_details' 
) 
+0

githubアプリケーションの開発者ページにhttp:// localhost:8000/complete/github/asコールバックURLを登録しましたか? –

+0

@AjayGuptaはい、確かです。 –

+0

あなたはそこに何を貼り付けたらいいですか? –

答えて

0

問題はGithubののコールバックURLとありました。私のケースでは、URLの中に言語の接頭辞があり、Githubがその接頭辞を持たないリンクに対して他の提供者がエラーを起こさなかったことに気付かないことを期待していませんでした。私はパスの接頭辞なしでデフォルトの言語を表示する方法を説明しているこのpostに取り組んでいます。私はそのような問題に直面する人を助けることを願っています。

関連する問題