本文为 social-auth-app-django 使用记录。(官方文档)
0. 前言
前提:有两个网站,记为网站A、网站B,两个网站有各自的用户系统,现在网站B要实现使网站A的用户无需注册直接登录自己的网站,这里就要用到第三方登录。
环境: Django == 3.x social-auth-app-django == 4.0.0
1. 安装
pip install social-auth-app-django
2. 使用
网站A 为该篇文章的 provider 项目,即 OAuth provider(提供方);
创建 Django 项目(网站B),即 OAuth consumer(使用方),网站B目录树如下图:
├─manage.py
├─social
│ │ asgi.py
│ │ settings.py
│ │ urls.py
│ │ wsgi.py
│ └─ __init__.py
└─users
│ admin.py
│ apps.py
│ backends.py
│ models.py
│ tests.py
│ views.py
└─ __init__.py
并进行相关配置:
# social/settings.py
INSTALLED_APPS = [
...
'users',
'social_django', # add
]
SOCIAL_AUTH_ADMIN_USER_SEARCH_FIELDS = ['username', 'email']
# SOCIAL_AUTH_要使用登录模块的名称大写_KEY
# 登录模块名对应为第三步中自定义后端的 name 属性
SOCIAL_AUTH_DJANGO_KEY = 'local'
SOCIAL_AUTH_DJANGO_SECRET = 'local'
# 登录成功后跳转页面
LOGIN_REDIRECT_URL = '/admin/'
# 获取授权码的标识
PARTIAL_PIPELINE_TOKEN_NAME = 'code'
AUTHENTICATION_BACKENDS = (
'users.backends.djangoOauth2', # 自定义第三方登录认证
'django.contrib.auth.backends.ModelBackend', # django 默认登录认证
)
# 获取用户详细的信息
SOCIAL_AUTH_PIPELINE = (
'social_core.pipeline.social_auth.social_details',
'social_core.pip

本文详述如何在Django项目中使用social-auth-app-django实现网站A用户的无缝登录,包括安装配置、自定义后端、应用注册及实际流程演示。
最低0.47元/天 解锁文章
2719





