首页 > 作文

ssm项目实现用户登陆持久化(token)

更新时间:2023-04-09 03:00:57 阅读: 评论:0

用户登录持久化就是每次访问不用账号密码来校验身份,在用户登录第一次之后会返回一个token字符串,之后的访问客户端将这个token加到请求体里发给服务器就可以验证身份了。

利用jedis和jwt创建用户token

1、jwt创建token

maven依赖:

        <dependency>            <groupid>com.auth0</groupid>            <artifactid>java-jwt</artifactid>            <version>3.3.0</version>        </dependency>

创建jwt工具类

用于创建token和解析token

import com.auth0.jwt.jwt;import com.auth0.jwt.jwtverifier;import com.auth0.jwt.algorithms.algorithm;import com.auth0.jwt.interfaces.claim;import com.auth0.jwt.interfaces.decodedjwt; public class jwtutils {     /**     * 公钥     */    private static string cret = "qiang";  //此处随便设置一个自己的加密符号    public static string createtoken(int id, string urname,                                      string type) throws exception {        // 签发时间        date iatdate = new date();         // 过期时间,7天时间        calendar nowtime = calendar.getinstance();        nowtime.add(calendar.hour, 24 * 7);        date experiesdate = n二本大学有哪些owtime.gettime();         map<string, object> map = new hashmap<string, object>();        map.put("alg", "hs256");        map.put("typ", "jwt");        string token = jwt.create()                .withheader(map)                .withclaim("id", id)                .withclaim("urname", urname)                .withclaim("type", type)                .wit二本考研hexpiresat(experiesdate) // 设置过期的日期                .withissuedat(iatdate) // 签发时间                .sign(algorithm.hmac256(cret)); // 加密        return token;    }     /**     * 解密     */     public static map<string, claim> verifytoken(语文作业string token) throws exception {        jwtverifier verifier = jwt.require(algorithm.hmac256(cret)).build();        decodedjwt jwt = null;        try {            jwt = verifier.verify(token);  //核实token        } catch (exception e) {            throw new exception("登录过期");        }        return jwt.getclaims();  //返回的是解析完的token,是一个map,里面有id,urname,type键值对    }}

2、jedisutil缓存token

首先讲讲jedis,jedis是集成了redis的一些命令操作,将其封装的java客户端,一般在其上封装一层作为业务使用,封装如下:

首先导入maven包,这里也需要启动redis服务

        <dependency>            <groupid>redis.clients</groupid>            <artifactid>jedis</artifactid>            <version>2.9.0</version>        </dependency>

然后设计一个jedis工具类将其封装

import redis.clients.jedis.jedis; public class jedisutils {     private static jedis jedis;    //初始化    private static void init() {        jedis = new jedis("localhost");    }    //在redis中设置键值对存储    public static void ttoken(string id, string token, int day) {        int cond = day * 60 * 60 * 24;        jedisutils.init();        jedis.t(string.valueof(id), token); //根据id存储token        jedis.expire(string.valueof(id), cond);  //设置token持续时间    }     public static string gettoken(string id) {        jedisutils.init();        string token = jedis.get(string.valueof(id))报名招生;  //获取token        return token;    }}

到此这篇关于ssm项目实现用现在进行时结构户登陆持久化(token)的文章就介绍到这了,更多相关ssm 用户登陆持久化内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-09 03:00:55,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/800ce8b27175db31f6208d95a99a3b1b.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:ssm项目实现用户登陆持久化(token).doc

本文 PDF 下载地址:ssm项目实现用户登陆持久化(token).pdf

标签:持久   将其   时间   用户登录
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图