码迷,mamicode.com
首页 > 其他好文 > 详细

SSO单点登入流程

时间:2020-07-24 22:10:15      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:用户   head   ppi   secret   用户id   userinfo   members   pre   headers   

SSO单点登入流程

  • 用户登入后, 通过JWT将通过一定规则生成一个token, 不建议将重要信息放入token中, 一般存放唯一标识符

    这里为什么不在登入后就将用户信息存放入cookie中是因为, cookie存放信息不安全

  • 将token存入Cookie中

  • 创建拦截器, 拦截所有请求, 在请求前判断一下Cookie中是否有token, 如果有token就在headers中添加

    一个token属性

  • 登入调用后端api, 通过JWT获取唯一表示符, 通过唯一标识符查询数据库, 将结果返回给前端, 前端将用户信息存储到Cookie中

        public static String getMemberIdByJwtToken(HttpServletRequest request) {
            String jwtToken = request.getHeader("token");
            if (StringUtils.isEmpty(jwtToken)) return "";
            Jws<Claims> claimsJws = Jwts.parser().setSigningKey(APP_SECRET).parseClaimsJws(jwtToken);
            Claims claims = claimsJws.getBody();
            return (String) claims.get("id");
        }
    
        @GetMapping("/token")
        public ResponseBo getUserInfoByToken(HttpServletRequest request) {
            //调用jwt工具类获取header中的token
            String memberId = JwtUtils.getMemberIdByJwtToken(request);
            //根据用户id获取用户信息
            Member member = memberService.getById(memberId);
            System.out.println(member);
            return ResponseBo.ok().data("user", member);
        }
    
  • 从Cookie中获取用户信息

SSO单点登入流程

标签:用户   head   ppi   secret   用户id   userinfo   members   pre   headers   

原文地址:https://www.cnblogs.com/kikochz/p/13373985.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!