0

我尝试使用 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',
)

网址.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

您的应用程序的回调 URL;阅读我们的 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

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

4

1 回答 1

0

就像 github 应用程序说的:

应用程序主页的完整 URL

http://127.0.0.1:8000指向本地主机。您需要的是放置一个指向您的服务器的 ip 或域名。

于 2013-08-08T16:37:36.443 回答