最近要做单点登录,于是研究了两天CAS,对用户注册这个问题很纠结,有以下两种方式,不知哪个更好,期待大家讨论。
1、Server端有DB,自己做好用户注册的实现,将接口提供给各个Client端(具体用什么方式让Client端调用是个难点,难点1)。
这样的话,用户登录某一应用(CAS中的Client端)时,会被拦截,转到Server端,在Server端读数据库进行验证,验证通过后,返回到Client端,然后Client端再读自己的数据库,取出用户的信息(此处很纠结,因为各个Client的用户实体的属性是不一样的,比如有的Client端的用户有手机号这一属性,有的则没有,所以综合了一下,只希望在Server端存用户的用户名和密码)。
2、Server端无DB,注册时到各Client端只把用户信息保存到各自的DB。
这样的话,用户登录某一应用(CAS中的Client端)时,会被拦截,转到Server端,Server端根据请求的不同判断该调用哪个Client的DB进行验证(难点2),此处又要有分支了:
1)、验证的时候把用户信息读出来,验证通过后,将用户信息直接传给Client端(难点3),这样Client端就不用再读DB提取用户信息了。
2)、验证的时候不读用户的信息,验证通过后,返回到Client端,Client端再读用户信息。
大家觉的用什么方式好一些?并希望大家对标红的三个难点进行讨论。
这个帖子不错:http://www.iteye.com/topic/165313
BTW:
感谢大家的热情参与,特别鸣谢:wad12302、denger 、fallen_lord、lovit
大家可以看一下他们的发帖,会得到不少信息。
扩展CAS等具体做法请参照fallen_lord的发帖。
稍后我会参照他们的观点作出整理,loading..........
-----------------------------------分割线-----------------------------------------------------
现在正在实现着,等实现好了再把方案完整的贴出来。
采用的方式是REST,谢谢denger的建议,至于CAS怎么集成REST,大家可以去看denger博客上的文章:http://denger.iteye.com/blog/973068
loading...........
本文探讨了单点登录系统CAS中两种用户注册方案的优劣,并邀请读者共同讨论技术难点。第一种方案是在Server端集中管理用户认证信息,第二种方案是在各Client端分散管理。
1346

被折叠的 条评论
为什么被折叠?



