• 分布式Session


    方案一:采用redis集群

           架构:

            浏览器 ---> Nginx ---> 应用集群 ---> redis集群

            首次登录时,服务器端生成token,存入redis,并将token返回给客户端(浏览器), 然后浏览器每次访问服务器端时都会携带token, 应用服务器携带token会访问redis集群,如果根据token查到用户相关信息,则说明是已登录状态

     代码略

    -----------------------------------------------------------------------------------------------------------------------------------------------

    方案二:采用JWT

         架构

         浏览器 ---> Nginx ---> 应用集群 ---> JWT

            首次登录时,服务器端通过Jwt加密算法生成token,并返回给客户端(浏览器),然后浏览器每次访问服务器端时都会携带token,应用服务器会通过Jwt解密算法对token进行解密操作,如果解密成功获取到用户相关信息,则说明是已登录状


    package net.jwt.utils;

    import io.jsonwebtoken.*;
    import net.jwt.domain.User;

    import java.util.Date;

    public class JwtUtil {

    private static final String SUBJECT = "jiajing"; //发布者

    private static final Long EXPIRE = 1000 * 60 * 60 * 24 * 7L;//一周后过期

    private static final String APPSECRET = "jjjjj";//密钥
    /**
    * 生成jwt(加密)
    * @return 返回token
    */
    public static String createJsonWebJwt(User user) {

    String token = Jwts.builder().setSubject(SUBJECT)
    .claim("id", user.getId()) //
    .claim("name", user.getName())
    .claim("phone", user.getPhone())
    .setIssuedAt(new Date())
    .setExpiration(new Date(System.currentTimeMillis() + EXPIRE))
    .signWith(SignatureAlgorithm.HS256, APPSECRET)
    .compact();
    return token;
    }


    /**
    * 校验token(解密)
    * @param token
    * @return
    */
    public static Claims checkJwt(String token) {
    try {
    Claims claims = Jwts.parser().setSigningKey(APPSECRET)
    .parseClaimsJws(token).getBody();
    return claims;
    } catch (Exception e) {
    System.out.println("非法");
    }
    return null;
    }

    }

    <!-- JWT相关 -->
    <dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.7.0</version>
    </dependency>
  • 相关阅读:
    新安装的CentOS 7不能上网
    修改机器名
    读书笔记-MySQL运维内参08-索引实现原理2
    读书笔记-MySQL运维内参08-索引实现原理1
    读书笔记-MySQL运维内参07-InnoDB数据存储结构
    MySQL 参数设置-持续更新
    读书笔记-Mycat权威指南-10-分片规则
    读书笔记-Mycat权威指南-09-全局序列号
    读书笔记-Mycat权威指南-08-Mycat中的Join
    读书笔记-Mycat权威指南-03-Mycat中的概念
  • 原文地址:https://www.cnblogs.com/yuefeng123/p/11066984.html
Copyright © 2020-2023  润新知