使用 Django 来实现社交登录功能
索引
-
- 通用设置
-
- 使用谷歌账号进行认证功能
- 使用Facebook账号进行认证功能
共同设置
安装图书馆。
$ pip install social-auth-app-django
编辑settings.py文件。
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '[クライアントID]' ?これを追加。
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '[クライアント シークレット]' ?これを追加。
INSTALLED_APPS = [
...省略...
'social_django', ?これを追加。
]
MIDDLEWARE_CLASSES = [
...省略...
'social_django.middleware.SocialAuthExceptionMiddleware', ?これを追加。
]
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
PROJECT_DIR.child('templates'),
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
...省略...
'social_django.context_processors.backends', ?これを追加。
'social_django.context_processors.login_redirect', ?これを追加。
]
},
},
]
执行迁移。
$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions, social_django
Running migrations:
Applying social_django.0001_initial... OK
Applying social_django.0002_add_related_name... OK
Applying social_django.0003_alter_email_max_length... OK
Applying social_django.0004_auto_20160423_0400... OK
Applying social_django.0005_auto_20160727_2333... OK
Applying social_django.0006_partial... OK
...
我們將編輯urls.py文件來管理整個項目。
urlpatterns = [
...省略...
path('oauth/', include('social_django.urls', namespace='social')), ?これを追加
]
在Google账户中的认证功能

SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '' ?ここにクライアントIDを追加。
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '' ?ここにクライアントシークレットを追加。
...省略...
AUTHENTICATION_BACKENDS = (
'social_core.backends.open_id.OpenIdAuth', ?これを追加。
'social_core.backends.google.GoogleOpenId', ?これを追加。
'social_core.backends.google.GoogleOAuth2', ?これを追加。
'django.contrib.auth.backends.ModelBackend', ?これを追加。
)
以下是如何在HTML中创建登录链接的方式。
...省略...
<a href="{% url 'social:begin' 'google-oauth2' %}">Googleでログイン</a>
...省略...
3. 通过Facebook账户进行身份验证功能
目前正在制作中。(由于正在实施中,稍后会添加)