0

In meinem django Projekt verwende ich python-social-auth. Ich bin Tring mit Github sozialen Login hinzuzufügen, aber leider nächsten Fehler haben:Authentifizierung fehlgeschlagen in Github | python-social-auth

Authentifizierung fehlgeschlagen: Die redirect_uri MUSS für diese Anwendung die registrierte Callback-URL übereinstimmen.

Voll Fehler sieht wie folgt aus:

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 

ich registrierte Anwendung in Github und stellen Sie die Callback-URL als http://localhost:8000/complete/github/ gesetzt.

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

haben Sie http: // localhost: 8000/complete/github/als Callback-URL auf der Entwicklerseite Ihrer github-Anwendung registriert? –

+0

@AjayGupta ja, sicher. –

+0

können Sie einfügen, was haben Sie dort? –

Antwort

0

Das Problem war, mit Callback-URL von Github. In meinem Fall hatte ich Sprachpräfix innerhalb der URL, erwartete nicht, dass Github für diese Ursache empfindlich sein würde, andere providers nicht Fehler für Verbindung ohne Präfix erhöhten. Ich fount dieses post, das beschreibt, wie Standardsprache ohne Pfadpräfixe angezeigt wird. Ich hoffe, dass es jemanden helfen wird, der mit solchem ​​Problem konfrontiert wird.

Verwandte Themen