单点登录——用户中心大致流程
2017-08-05 21:47
633 查看
客户端需要登录后才能执行的操作,在拦截器Interceptor中设置。第一次访问客户端拦截器(拦截所有登录后才能做的操作,目录规划时要规划好,/back**),没有token,跳转到用户中心服务器(response.sendRedirect(url)),(url中带着returnUrl,用来在用户中心登录成功后跳转回客户端正在访问的页面),登录成功后,生产token,并且将token追加到returnUrl上,同时在服务器端session中保存登录成功获得的admin,在服务ConstatFinalUtil的常量中创建一个Map,并且将键值对“token”,“adminJSON”(变成JSON是为了方便与客户端传输)保存到Map中(实际上是放到redis中),跳转回带着token的returnUrl,及返回客户端。
这时候第二次访问客户端拦截器,已经带上token。有了token还不行,需要到用户中心中去核对是不是用户中心生成的token(防止用户自己自己加token),这时候用到一个URL类,可以获取指定网址返回的内容,可以封装成HttpUtil工具类。具体做法是将版本号version、加密信息、token等信息打包成JSON对象,用HttpUtil工具类连接访问到用户中心的verifyTokenServie服务,来验证token等信息是否正确(验证token通过在生成token的Map中查找键是“token”的admin是否为null如果为null这证明此token没有,如果不为null则证明token是真的),如果token验证为真,则将得到的admin、成功信息等打包成JSON格式,返回HttpUtil,再返回到客户端Interceptor,这时候客户端就有了admin等信息了。
强调:(1)客户端与用户中心交互,由于是两个服务器通过http协议传递信息,所以admin等信息都是先封装成JSON格式,再用JSON.toJsonString,转换成JSON格式的字符串传递,另一端接收后再用JSON.parse()转换为JSON对象。
(2)第一次生成admin后在服务器端的session中存储,可以在服务器端记录客户端用户登录状态,访问之前先看session中有没有admin,如果得到值不为null,则证明此用户已经在用户中心登录过;客户端第一次接收到admin也在保存在session,可以在客户端记录用户登录信息,用户访问时如果session中的“admin”不为null则证明已经登录过,就不用去用户中心登录了。
用一副图简易表示:
这时候第二次访问客户端拦截器,已经带上token。有了token还不行,需要到用户中心中去核对是不是用户中心生成的token(防止用户自己自己加token),这时候用到一个URL类,可以获取指定网址返回的内容,可以封装成HttpUtil工具类。具体做法是将版本号version、加密信息、token等信息打包成JSON对象,用HttpUtil工具类连接访问到用户中心的verifyTokenServie服务,来验证token等信息是否正确(验证token通过在生成token的Map中查找键是“token”的admin是否为null如果为null这证明此token没有,如果不为null则证明token是真的),如果token验证为真,则将得到的admin、成功信息等打包成JSON格式,返回HttpUtil,再返回到客户端Interceptor,这时候客户端就有了admin等信息了。
强调:(1)客户端与用户中心交互,由于是两个服务器通过http协议传递信息,所以admin等信息都是先封装成JSON格式,再用JSON.toJsonString,转换成JSON格式的字符串传递,另一端接收后再用JSON.parse()转换为JSON对象。
(2)第一次生成admin后在服务器端的session中存储,可以在服务器端记录客户端用户登录状态,访问之前先看session中有没有admin,如果得到值不为null,则证明此用户已经在用户中心登录过;客户端第一次接收到admin也在保存在session,可以在客户端记录用户登录信息,用户访问时如果session中的“admin”不为null则证明已经登录过,就不用去用户中心登录了。
用一副图简易表示:
相关文章推荐
- App通过QQ/微信登录绑定用户信息的一般流程
- java和Discuz论坛实现单点登录,通过Ucenter(用户管理中心)
- 二、spring mvc模拟用户增删改查以及登录和上传文件的相关流程
- 以用户为中心的Web网站设计流程
- 用户中心登录注册整理
- Num64 前台用户登录&进入账户中心
- linux终端用户登录流程
- linux终端用户登录流程
- web 开发,个人中心每个请求,判断用户是否登录,若没有登录,则跳转到登录页面,登录成功后返回之前页面
- linux终端用户登录流程
- 基于ssh开发web项目-用户登录流程
- 【phpcms-v9】用户登录后顶部显示:[您好,欢迎xxx登录][会员中心][退出]
- 服务器用户权限改造管理方案与实施项目大致流程及注意事项
- 用户登录流程详解 +volley(StringRequest)
- java实现微信公众号授权登录获取用户信息流程
- Yii 用户登录和注销流程
- 取登录用户的成本中心
- Openstack的用户登录流程
- 用户登录流程中,记住密码和自动登录逻辑。
- 详解用户登录流程——Volley 请求