jjwt無狀態(tài)鑒權(quán)

jjwt官方文檔:https://github.com/jwtk/jjwt

關(guān)于jjwt的使用官方文檔寫的很詳細

在做shiro無狀態(tài)鑒權(quán)時寫了一個工具類

package com.lv.myframework.utils;

import io.jsonwebtoken.*;
import io.jsonwebtoken.security.Keys;
import lombok.extern.slf4j.Slf4j;

import javax.crypto.SecretKey;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

@Slf4j
public class JwtUtil {
    //設(shè)置加密密鑰
    private static SecretKey secretKey = Keys.secretKeyFor(SignatureAlgorithm.HS256);

    /**
     * 生成token
     * @param id 指定token id
     * @return
     */
    public static String encode(String id){
        return JwtUtil.encode(null,false,id);
    }

    /**
     * 生成token
     * @param id 指定token id
     * @param rememberMe 是否記住我
     * @return
     */
    public static String encode(String id,Boolean rememberMe){
        return JwtUtil.encode(null,true,id);
    }

    /**
     * 生成的token未記住的情況下默認有效時間為10min憨颠,記住我有效期為3day
     * @param claims 額外添加到荷部分的信息。
     * @param rememberMe 是否記住我
     * @return
     */
    public static String encode(Map<String, Object> claims,Boolean rememberMe,String id){
        if (claims == null) {
            claims = new HashMap<>();
        }
        // 簽發(fā)時間(iat):荷載部分的標準字段之一
        long nowMillis = System.currentTimeMillis();
        Date now = new Date(nowMillis);
        Date expireDate = null;
        if(!rememberMe){
            expireDate = new Date(nowMillis + 10*60*1000);
        }else{
            expireDate = new Date(nowMillis + 3*24*60*60*1000);
        }
        //TODO 將token信息存入redis
        return Jwts.builder().setClaims(claims)
                .setIssuedAt(now)
                .setId(id)
                .setExpiration(expireDate)
                .signWith(secretKey).compact();
    }

    /**
     * 根據(jù)token獲取Claims
     * @param token
     * @return
     */
    public static Claims decode(String token){
       return Jwts.parserBuilder().setSigningKey(secretKey).build().parseClaimsJws(token).getBody();
    }

    /**
     * 驗證token是否有效
     * @param token
     * @return
     */
    public static Boolean verify(String token){
        try {
            Jwts.parserBuilder().setSigningKey(secretKey).build().parseClaimsJws(token);
            return true;
        }catch (ExpiredJwtException e){
            log.error(e.getMessage());
            return false;
        } catch (JwtException e) {
            log.error(e.getMessage());
            return false;
        } catch (Exception e){
            log.error(e.getMessage());
            return false;
        }
    }

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末规婆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子笙隙,更是在濱河造成了極大的恐慌石景,老刑警劉巖喘帚,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異反粥,居然都是意外死亡卢肃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門才顿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來莫湘,“玉大人,你說我怎么就攤上這事郑气》澹” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵尾组,是天一觀的道長忙芒。 經(jīng)常有香客問我,道長讳侨,這世上最難降的妖魔是什么呵萨? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮跨跨,結(jié)果婚禮上潮峦,老公的妹妹穿的比我還像新娘。我一直安慰自己勇婴,他們只是感情好忱嘹,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耕渴,像睡著了一般拘悦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上橱脸,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天础米,我揣著相機與錄音分苇,去河邊找鬼。 笑死椭盏,一個胖子當著我的面吹牛组砚,可吹牛的內(nèi)容都是我干的吻商。 我是一名探鬼主播掏颊,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼艾帐!你這毒婦竟也來了乌叶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤柒爸,失蹤者是張志新(化名)和其女友劉穎准浴,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捎稚,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡乐横,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了今野。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片葡公。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖条霜,靈堂內(nèi)的尸體忽然破棺而出催什,到底是詐尸還是另有隱情,我是刑警寧澤宰睡,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布蒲凶,位于F島的核電站,受9級特大地震影響拆内,放射性物質(zhì)發(fā)生泄漏旋圆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一麸恍、第九天 我趴在偏房一處隱蔽的房頂上張望臂聋。 院中可真熱鬧,春花似錦或南、人聲如沸孩等。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肄方。三九已至,卻和暖如春蹬癌,著一層夾襖步出監(jiān)牢的瞬間权她,已是汗流浹背虹茶。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留隅要,地道東北人蝴罪。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像步清,于是被迫代替她去往敵國和親要门。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容

  • (根據(jù)真實故事改編的一段快板段子廓啊。) 有位姑娘叫劉倩 笑靨如花正芳齡 醫(yī)大畢業(yè)來上崗 風(fēng)風(fēng)雨雨快十年 感人的事跡說...
    刀客練詩房閱讀 151評論 3 2
  • 今天我要給大家分享的書是《優(yōu)秀到不能被忽視》欢搜。 做自己喜歡的事是自由,喜歡自己做的事是幸福谴轮,很多人既沒有做自己喜歡...
    穆思心語閱讀 179評論 0 0
  • 第一步:打開官網(wǎng) https://robertsspaceindustries.com/ 第二步:如下圖 第三步:...
    星際公民閱讀 7,635評論 0 0
  • 夏夜的星空是多么美麗俺次痢!那些閃爍的星星是那么平靜第步、安詳疮装,既像一只只明亮的眼睛,又像一盞盞亮晶晶的銀燈粘都,看著我俏蛮,照著...
    余癮_d0ef閱讀 591評論 0 0
  • 當時美偵察機受損嚴重垦巴,機長差點下令棄機全員跳傘,領(lǐng)航員發(fā)現(xiàn)最近的害男島陵水我軍軍用機場,遂決定賭一把跑筝,遂飛向陵水坛缕,...
    Vbs鷹鷹在翱翔閱讀 332評論 0 0