1. 程式人生 > >spring boot項目之登陸緩存session至redis和cookies

spring boot項目之登陸緩存session至redis和cookies

進行 @param span set 參數 cat control session open

一、將獲取的openId(詳細步驟見賣家掃碼登陸獲取openId)作為參數傳入到SellerUserController中的login登陸方法。

技術分享圖片

註:此處設置token,是為了取出時先從cookie中拿出token,再回redis校驗

二、將傳入的openId去和數據庫中的數據進行匹配

技術分享圖片

三、先在application.yml中設置redis配置,然後再將token設置進redis(token作為value設置進cookie寫進response,又作為key設置進redis,相應的value為openId)

技術分享圖片

技術分享圖片

技術分享圖片技術分享圖片

四、將Token寫進cooike

 1、CookieUtil的寫法

package com.imooc.utils;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;

public class CookieUtil {

/**
* 設置
* @param response
* @param name
* @param value
* @param maxAge
*/
public static void set(HttpServletResponse response,
String name,
String value,
int maxAge) {
Cookie cookie = new Cookie(name, value);
cookie.setPath("/");
cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}

/**
* 獲取cookie
* @param request
* @param name
* @return
*/
public static Cookie get(HttpServletRequest request,
String name) {
Map<String, Cookie> cookieMap = readCookieMap(request);
if (cookieMap.containsKey(name)) {
return cookieMap.get(name);
}else {
return null;
}
}

/**
* 將cookie封裝成Map
* @param request
* @return
*/
private static Map<String, Cookie> readCookieMap(HttpServletRequest request) {
Map<String, Cookie> cookieMap = new HashMap<>();
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie: cookies) {
cookieMap.put(cookie.getName(), cookie);
}
}
return cookieMap;
}
}

 2、

技術分享圖片

spring boot項目之登陸緩存session至redis和cookies