In my django project I use python-social-auth. I am tring to add social login with Github but unfortunately have next error:
Authentication failed: The redirect_uri MUST match the registered callback URL for this application.
Full error looks like this:
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
I registered application in Github and set set the callback URL as http://localhost:8000/complete/github/.
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'
)