zoukankan      html  css  js  c++  java
  • 分布式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配置教程
    CentOS安装教程(VMware)
    Kali配置教程
    Kali安装教程(VMWare)
    Tomcat安装教程
    JDK安装教程(Windows7 x64)
    WebSphere概要文件的创建与删除
    swftools安装教程
    常用Linux源小记
    Linux软件源书写格式解析及本地yum源制作
  • 原文地址:https://www.cnblogs.com/yuefeng123/p/11066984.html
Copyright © 2011-2022 走看看