欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于redis實現(xiàn)token驗證用戶是否登陸

 更新時間:2019年08月21日 10:08:35   作者:段恩剛--Baron  
這篇文章主要為大家詳細(xì)介紹了基于redis實現(xiàn)token驗證用戶是否登陸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

基于項目需求, 我們要實現(xiàn)一個基于redis實現(xiàn)token登錄驗證,該如何實現(xiàn)呢:

后端實現(xiàn):

1.引入redis相關(guān)的依賴

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
 <groupId>org.springframework.session</groupId>
 <artifactId>spring-session-data-redis</artifactId>
 <version>2.0.5.RELEASE</version>
</dependency>

2.Controller層生成token信息并存入redis中

//若用戶登錄驗證成功后將對應(yīng)的登陸信息和登陸憑證一起存入redis中
//生成登陸憑證token UUID
String uuidToken= UUID.randomUUID().toString();
uuidToken=uuidToken.replace("-","");
 
//將token和用戶登錄態(tài)之間建立聯(lián)系
redisTemplate.opsForValue().set(uuidToken,userModel);
redisTemplate.expire(uuidToken,1, TimeUnit.HOURS);
 
// 下發(fā)token
return CommonReturnType.create(uuidToken);

3.需要驗證的登陸的地方調(diào)用即可

 String token = httpServletRequest.getParameterMap().get("token")[0];
 if (StringUtils.isEmpty(token)) {
 throw new BusinessException(EmBusinessError.USER_NOT_LOGIN, "用戶還未登陸,不能下單");
 }
 //獲取用戶的登陸信息
 UserModel userModel= (UserModel) redisTemplate.opsForValue().get(token);
 if(userModel==null){
 throw new BusinessException(EmBusinessError.USER_NOT_LOGIN, "用戶還未登陸,不能下單");
 }
 
 OrderModel orderModel = orderService.creatOrder(userModel.getId(), itemId, promoId, amount);
 return CommonReturnType.create(null);

前端實現(xiàn)

1.從返回值中取出token并存入localstorage

if(data.status == "success") {
 alert("登陸成功");
 //取出token放入localstorage
 var token = data.data;
 window.localStorage["token"] = token;
 window.location.href = "listitem.html";
}

2.驗證用戶是否登陸

var token = window.localStorage["token"];
 if(token == null){
 alert("沒有登錄,不能下單");
 window.location.href="login.html" rel="external nofollow" ;
 return false;
 } 

3.當(dāng)然,需要把token傳入后端再校驗一次

url:"http://"+g_host+"/order/createorder?token="+token,

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文帶你深入理解Redis的主從架構(gòu)

    一文帶你深入理解Redis的主從架構(gòu)

    Redis主從架構(gòu)是一種分布式數(shù)據(jù)庫架構(gòu),它包括一個主節(jié)點(Master)和一個或多個從節(jié)點(Slave),主節(jié)點處理所有寫操作,從節(jié)點負(fù)責(zé)復(fù)制主節(jié)點的數(shù)據(jù)并處理讀請求,本文將帶大家深入理解Redis主從架構(gòu),需要的朋友可以參考下
    2023-09-09
  • Redis數(shù)據(jù)一致性問題的三種解決方案

    Redis數(shù)據(jù)一致性問題的三種解決方案

    Redis(Remote?Dictionary?Server?),是一個高性能的基于Key-Value結(jié)構(gòu)存儲的NoSQL開源數(shù)據(jù)庫,大部分公司采用Redis來實現(xiàn)分布式緩存,用來提高數(shù)據(jù)查詢效率,本文就給大家介紹三種Redis數(shù)據(jù)一致性問題的解決方案,需要的朋友可以參考下
    2023-07-07
  • redis集群規(guī)范詳解

    redis集群規(guī)范詳解

    這篇文章主要介紹了redis集群規(guī)范詳解,涉及節(jié)點失效檢測、集群狀態(tài)檢測、從節(jié)點選舉等相關(guān)內(nèi)容,比較詳細(xì),需要的朋友可以參考。
    2017-10-10
  • Redis BloomFilter實例講解

    Redis BloomFilter實例講解

    這篇文章主要介紹了Redis BloomFilter實例。BloomFilter不需要存儲key,節(jié)省空間,在某些對保密要求非常嚴(yán)格的場合有優(yōu)勢。想要進(jìn)一步了解BloomFilter運用實例的小伙伴可以了解一下這篇文章
    2021-09-09
  • Spring Boot 中的 Redis 分布式鎖

    Spring Boot 中的 Redis 分布式鎖

    這篇文章主要介紹了Spring Boot 中的 Redis 分布式鎖及,Redis分布式鎖的優(yōu)化需要的朋友可以參考下
    2023-10-10
  • Redis批量刪除Key的三種方式小結(jié)

    Redis批量刪除Key的三種方式小結(jié)

    本文主要介紹了Redis批量刪除Key的三種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Redis慢日志的實現(xiàn)示例

    Redis慢日志的實現(xiàn)示例

    慢查詢?nèi)罩臼荝edis提供的一個用于觀察系統(tǒng)性能的功能,本文主要介紹了Redis慢日志的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • Windows環(huán)境下查看、添加、修改redis數(shù)據(jù)庫的密碼兩種方式

    Windows環(huán)境下查看、添加、修改redis數(shù)據(jù)庫的密碼兩種方式

    在Windows系統(tǒng)上設(shè)置Redis密碼的過程與Linux系統(tǒng)類似,但需注意幾個關(guān)鍵步驟以確保正確配置,這篇文章主要給大家介紹了關(guān)于Windows環(huán)境下查看、添加、修改redis數(shù)據(jù)庫的密碼兩種方式,需要的朋友可以參考下
    2024-07-07
  • 硬核!15張圖解Redis為什么這么快(推薦)

    硬核!15張圖解Redis為什么這么快(推薦)

    作為一名服務(wù)端工程師,工作中你肯定和 Redis 打過交道。Redis為什么快,這點想必你也知道,至少為了面試也做過準(zhǔn)備,今天通過本文給大家介紹下,感興趣的朋友一起看看吧
    2020-10-10
  • redis中redis-cli使用小結(jié)

    redis中redis-cli使用小結(jié)

    redis-cli 是Redis命令行界面,一個簡單的程序,允許直接從終端向Redis發(fā)送命令,并讀取服務(wù)器發(fā)送的回復(fù),本文主要介紹了redis中redis-cli使用小結(jié),感興趣的可以了解一下
    2023-10-10

最新評論