安装插件
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
效果: