通过social_auth与GitHub进行Django身份验证

时间:2013-08-08 12:07:37

标签: django github django-socialauth

我尝试使用social_auth构建一些github autentification的简约示例。 我做文件中的所有事情,但有一些问题。任何人都可以解释如何确定这个问题吗?

这是我对social_auth的设置:

AUTHENTIFICATION_BACKENDS =(
        'social_auth.backends.contrib.github.GithubBackend',
        'django.contrib.auth.backends.ModelBackend',
    )

GITHUB_API_ID = 'key' # i hide the key
GITHUB_API_SECRET = 'secret' # i hide the secret

LOGIN_URL = reverse_lazy('account:login')
LOGIN_REDIRECT_URL = reverse_lazy('account:hello')
LOGIN_ERROR_URL = reverse_lazy('account:login_error')

SOCIAL_AUTH_DEFAULT_USERNAME = 'new_social_auth_user'

AUTH_USER_MODEL = 'auth.User'
SOCIAL_AUTH_USER_MODEL = 'auth.User'

SOCIAL_AUTH_RAISE_EXCEPTIONS = True


TEMPLATE_CONTEXT_PROCESSORS = ( 
    'social_auth.context_processors.social_auth_by_name_backends',
    'social_auth.context_processors.social_auth_backends',
    #'social_auth.context_processors.social_auth_by_type_backends',
    'social_auth.context_processors.social_auth_login_redirect',
)
INSTALLED_APPS = (
    # native
    'django.contrib.auth',
    ...
    'social_auth',
    # own
    'account',
)
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'social_auth.middleware.SocialAuthExceptionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

urls.py

urlpatterns = patterns('',                                                                   
    url(r'^$', HomeView.as_view(), name='home'),                                             
    url(r'^', include('account.urls', namespace='account')),                                 
    url(r'', include('social_auth.urls')),                                                   
)      

在github应用程序的设置中我写道: 应用程序主页的完整URL:

http://127.0.0.1:8000

您的应用程序的回调网址;阅读我们的OAuth文档以获取更多信息:http://127.0.0.1:8000/account/hello

当我尝试通过github登录时,我有一个重定向到错误页面 在服务器控制台中,我看到:

[08/Aug/2013 06:47:24] "GET /sign-up/ HTTP/1.1" 200 898
[08/Aug/2013 06:47:26] "GET /login/github/ HTTP/1.1" 302 0
[08/Aug/2013 06:47:26] "GET /error/ HTTP/1.1" 200 17

有人知道如何确定问题的根源吗?或者我如何调试这个问题? 我试图重写这段代码但有同样的问题

1 个答案:

答案 0 :(得分:0)

就像github应用程序说的那样:

  

应用程序主页的完整网址

http://127.0.0.1:8000指向localhost。您需要的是放置指向您的服务器的IP或域名。