当公司有多条产品线,或者有多个不同的应用的时候,每次都做登录是个非常烦人的事情。(原谅我没有从SSO的角度看这个问题。。对我来说能偷懒少写点东西最实在)。为什么需要每次都做个登录?做登录就意味着我的系统还得要有用户、角色、菜单管理,天啊!RBAC又来了(摊手)。
当我新做一个应用的时候,我最希望的就是这些东西都是现有的,接入一下就可以用了,一方面来说省事,另外一方面来说,也节省测试的时间。从服务的角度来看,认证这种动作也应该被划分到一个具体的服务里面去。
为什么没有用Jasig
无论是OSC还是Github里面,基于Jasig的实现还是非常多的,不过Jasig也太多配置项了。。看着头晕。大周末的时间不适合想那么复杂的事情。。然后翻到了django-cas这个系列的项目,不过django-cas这个项目早就停更了,另外还有django-mama-cas和django-cas-ng,试了下django-cas-ng。。文档不全,看着比较累(周末的时候脑袋发挥不了全部状态。。。。),django-mama-cas这个项目倒是挺不错的,文档全,配置容易。一下就搞出来了(不过API上面还不是非常全,比起其他来说还是好很多的啦)
安装django-mama-cas
pip install django-mama-cas
更新配置
INSTALLED_APPS = ( # ...existing apps... 'mama_cas', )
更新路由
urlpatterns = [ # ...existing urls... url(r'^cas/', include('mama_cas.urls')), ]
添加回调,这里使用内置的,也可以自己扩展。回调主要是登录后可以用ticket过来换用户的其他信息
MAMA_CAS_SERVICES = [ { 'SERVICE': 'http://127.0.0.1:8000', 'CALLBACKS': [ 'mama_cas.callbacks.user_model_attributes', ], }, ]
好啦~到此该配置的都配好了。然后就可以使用了,这个app最主要的api有2个
http://127.0.0.1:8000/cas/login"text-align: center">
这个是用于登录的,service就是认证后要帮你回调到哪,回调过去之后有个Ticket的,自己存起来
Ticket拿到之后就可以过来换用户信息了,用户的信息都取得到,然后自行放到session里面就完事。
小结
Django-mama-cas这个项目还是非常简单易用的,下次把Oauth配合一下就可以很方便的把统一认证和RBAC的事情都在这个服务搞定了,这种功能每次都写还真是很烦人的
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 周华健.2015-水浒三部曲原创音乐选辑【滚石】【FLAC分轨】
- 钟志刚《为爱而歌DSD》[WAV+CUE]
- 孙露《情人的眼泪》[低速原抓WAV+CUE]
- 【雨果唱片】刘明源《胡琴专辑》1993[WAV+CUE]
- 黄莺莺《25周年纪念金曲专辑》[WAV+CUE][1.1G]
- 刘德丽《刘德丽新曲+精选》2023[WAV+CUE][1G]
- 潘美辰《鹰与月》双语专辑[WAV+CUE][1G]
- 梁咏琪.2007-女色新曲+精选2CD【华纳】【WAV+CUE】
- 黎亚.2006-我不在巴黎【星外星】【FLAC分轨】
- 陈洁仪.1994-心痛【立得唱片】【WAV+CUE】
- 车载必备专用超级选曲《劲爆中文DJ》2CD[WAV+CUE]
- 群星《民歌流淌60年(黑胶CD)》2CD[WAV+分轨]
- 群星《美丽时光》紫银合金AQCD[WAV+CUE]
- 群星《12大巨星畅销精选集》[WAV分轨][1.1G]
- 华语排行冠军曲《百事音乐风云榜》[WAV+CUE][1G]