美文网首页
简单的Cookie设置和读取操作

简单的Cookie设置和读取操作

作者: WAHAHA402 | 来源:发表于2020-03-17 16:39 被阅读0次

1、登录时设置Cookie,返回给前端浏览器

    @PostMapping(value = "/login")
    public BaseResponse createAuthenticationToken(@RequestBody GovJwtRequest authRequest, HttpServletResponse response) throws UnsupportedEncodingException {
        GovJwtResponse jwtResponse = authService.createAuthToken(authRequest);
        //这里设置cookie
        CookiesUtils.setCookies(response, BaseConstant.AUTH_JWT, jwtResponse.getJwtToken(), BaseConstant.JWT_TOKEN_VALIDITY);
        return BaseResponse.with(Code.SUCCESS, jwtResponse);
    }

2、可以从请求中获取Cookie,拦截器或者接口中获取都ok

aString = CookiesUtils.getValue(request, BaseConstant.AUTH_JWT);

3、CookieUtil实现

public class CookiesUtils {

    /**
     * 设置cookie
     *
     * @param response
     * @param name
     * @param value
     * @param expired  有效时间(s)
     */
    public static void setCookies(HttpServletResponse response, String name, String value, int expired)
            throws UnsupportedEncodingException {
        value = URLEncoder.encode(value, "utf-8");
        Cookie cookies = new Cookie(name, value);
        cookies.setMaxAge(expired);
        cookies.setPath("/");
        response.addCookie(cookies);
    }

    /**
     * 设置cookie
     *
     * @param response
     * @param name
     * @param value
     */
    public static void setCookies(HttpServletResponse response, String name, String value) {
        try {
            value = URLEncoder.encode(value, "utf-8");
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        }
        Cookie cookies = new Cookie(name, value);
        cookies.setPath("/");
        response.addCookie(cookies);
    }

    public static void deleteCookie(HttpServletResponse response, String key) {
        Cookie cookie = new Cookie(key, "");
        cookie.setMaxAge(0);
        cookie.setPath("/");
        response.addCookie(cookie);
    }

    /**
     * 获得cookie
     *
     * @param request
     * @param name
     * @return
     */
    public static String getValue(HttpServletRequest request, String name) throws UnsupportedEncodingException {
        Cookie[] cookies = request.getCookies();
        if (cookies == null || cookies.length == 0) {
            return null;
        }
        for (Cookie cookie : cookies) {
            if (Objects.equals(cookie.getName(), name)) {
                return URLDecoder.decode(cookie.getValue(), "utf-8");
            }
        }
        return null;
    }

4、其他
开发时出现过返回Cookie顺利,但是浏览器中并无该Cookie的情况,原因是前端某个库吞掉了Cookie,注意避坑。

相关文章

  • 简单的Cookie设置和读取操作

    1、登录时设置Cookie,返回给前端浏览器 2、可以从请求中获取Cookie,拦截器或者接口中获取都ok 3、C...

  • JS操作cookie

    一、 Cookie 本篇文章主要讲述对cookie的操作,如设置、读取、检查、删除。 首先了解下cookie的基本...

  • Python3 WebDriver操作cookie的方法

    WebDriver提供了操作Cookie的相关方法,可以读取、添加和删除cookie信息。 WebDriver操作...

  • JS使用Cookie

    //设置cookie,此处time的单位为秒。 // 读取cookie // 删除cookie

  • 了解HTTP Cookie

    Cookie 是什么 Cookie 的分类 如何设置 Cookie 如何读取 Cookie Cookie 的使用场...

  • cookie的创建、读取和删除

    1, cookie的创建、读取和删除 在JS中,可以使用Document对象的cookie属性操作cookie。 ...

  • selenium---cookie操作

    webdriver提供了操作cookie的相关方法,可以进行读取、添加和删除cookie信息 webdriver操...

  • js操作cookie

    JS操作cookie Jquery操作cookie 设置cookie 获取cookie 删除cookie 附件 j...

  • Flask-session中的cookie操作

    flask-session中默认的cookie操作有:提取cookie和设置cookie 提取cookie: Fl...

  • cookie实战

    使用JavaScript操作cookie 创建和存储cookie。 2.读取cookie值 3.判断cookie是...

网友评论

      本文标题:简单的Cookie设置和读取操作

      本文链接:https://www.haomeiwen.com/subject/txntyhtx.html