django多网站用户一致认证方案:django-simple-sso
django多网站用户统一认证方案:django-simple-sso
简述
代码与文档:https://github.com/ojii/django-simple-sso
原理:
写道
项目分服务器端和客户端,客户端原本是没有用户信息的,他的所有用户登录操作都会去服务器端验证,
当验证通过,服务器端会向客户端发送用户信息,客户端则保存用户信息,用该用户进行登录
当验证通过,服务器端会向客户端发送用户信息,客户端则保存用户信息,用该用户进行登录
简易流程图:
django-simple-sso的安装
写道
下载地址:https://github.com/ojii/django-simple-sso/tarball/master
解压后,直接运行:sudo python setup.py install
解压后,直接运行:sudo python setup.py install
创建两个简单的django网站
写道
服务器网站地址:http://127.0.0.1:8000/
客户网站地址:http://192.168.0.31:8000/
客户网站地址:http://192.168.0.31:8000/
服务器网站的设置
写道
settings.py中INSTALLED_APPS加入simple_sso.sso_server
python manage.py syncdb 创建数据库
urls.py中加入
test_server = SimpleSSOServer() urlpatterns = patterns('', url('^server/', include(test_server.get_urls())), )
写道
创建一个Client对象,主要用户客户网站身份验证
创建之后数据库sso_server_client应该用一条记录
其中root_url中应该与你的客户网站验证的url对应,如我的是:http://192.168.0.31:8000/client/
创建之后数据库sso_server_client应该用一条记录
其中root_url中应该与你的客户网站验证的url对应,如我的是:http://192.168.0.31:8000/client/
服务器端设置
写道
settings.py中加入
SIMPLE_SSO_SECRET 上面服务器创建client对象保存的secret
SIMPLE_SSO_KEY 上面服务器创建client对象保存的key
SIMPLE_SSO_SERVER 服务器网站url,如我的是:http://127.0.0.1:8000/server/
SIMPLE_SSO_SECRET 上面服务器创建client对象保存的secret
SIMPLE_SSO_KEY 上面服务器创建client对象保存的key
SIMPLE_SSO_SERVER 服务器网站url,如我的是:http://127.0.0.1:8000/server/
urls.py中加入
url('^client/', include('simple_sso.sso_client.urls')),
客户网站
客户网站点击登录后,跳转到服务器网站
服务器网站验证通过后,跳转回客户网站