安装插件
pip install social-auth-app-django
配置
'social_django',
'social_core.backends.weibo.WeiboOAuth2',
'social_core.backends.qq.WeiboOAuth2',
'social_core.backends.weixin.WeiboOAuth2',
'django.contrib.auth.backends.ModelBackend',
'social_django.context_processors.backends',
'social_django.context_processors.login_redirect',
=================
url(r'^login/', obtain_jwt_token),
修改为
url(r'^login/$', obtain_jwt_token),
因为:
=================
启动,登录
报错:
AttributeError at /login/weibo/
module 'social_core.backends.qq' has no attribute 'WeiboOAuth2'
Request Method: GET
Request URL: http://127.0.0.1:8000/login/weibo/
Django Version: 1.11.6
Exception Type: AttributeError
Exception Value:
module 'social_core.backends.qq' has no attribute 'WeiboOAuth2'
Exception Location: D:\Envs\MxShop\lib\site-packages\social_core\utils.py in module_member, line 62
Python Executable: D:\Envs\MxShop\Scripts\python.exe
Python Version: 3.6.0
Python Path:
['C:\\Users\\huang\\PycharmProjects\\MxShop\\extra_apps',
'C:\\Users\\huang\\PycharmProjects\\MxShop\\apps',
'C:\\Users\\huang\\PycharmProjects\\MxShop',
'C:/Users/huang/PycharmProjects/MxShop',
'C:\\Program Files\\JetBrains\\PyCharm 2017.2.7\\helpers\\pydev',
'C:\\Users\\huang\\PycharmProjects\\MxShop',
'C:\\Users\\huang\\PycharmProjects\\MxShop\\apps',
'C:\\Users\\huang\\PycharmProjects\\MxShop\\extra_apps',
'C:\\Program Files\\JetBrains\\PyCharm 2017.2.7\\helpers\\pydev',
'D:\\Envs\\MxShop\\Scripts\\python36.zip',
'C:\\Users\\huang\\AppData\\Local\\Programs\\Python\\Python36\\DLLs',
'C:\\Users\\huang\\AppData\\Local\\Programs\\Python\\Python36\\lib',
'C:\\Users\\huang\\AppData\\Local\\Programs\\Python\\Python36',
'D:\\Envs\\MxShop',
'D:\\Envs\\MxShop\\lib\\site-packages',
'D:\\Envs\\MxShop\\lib\\site-packages\\setuptools-39.1.0-py3.6.egg']
Server time: 星期四, 23 五月 2019 15:51:07 +0800
注释掉
# 'social_core.backends.qq.WeiboOAuth2',
# 'social_core.backends.weixin.WeiboOAuth2',
再次访问:
访问:
下面设置
用户登录成功之后,页面往哪里跳转
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/index/'
跳转成功后
下面修改源码
# return backend.strategy.redirect(url)
response = backend.strategy.redirect(url)
payload = jwt_payload_handler(user)
response.set_cookie("name", user.name if user.name else user.username, max_age=24*3600)
response.set_cookie("token", jwt_encode_handler(payload), max_age=24*3600)
return response
效果: