使用cookie实现网站免登录

项目场景:

在xiang’mu.com下有多个项目,比如xiang’mu.com/a/index.html和xiang’mu.com/b/index.html,其中a和b是两个不同的项目,但是它们都是xiang’mu.com下的,

问题描述:

它们可以共享cookie,但是它们又不是同一个项目,所以它们不能共享session,所以就需要解决它们之间的免登录问题。需要在a项目登录后,b项目打开直接登录

解决办法:

使用cookie解决,在a项目登录后,将cookie写到浏览器,在b项目打开时,将cookie读取出来,然后放到请求头中,这样就可以实现两个项目之间的免登录了。

这是一个关于cookie操作的js文件,在用到的页面进行使用
cookie.js

<!-- 保存cookie  xxxxxx是a、b所在的顶级域名 -->
function setCookie(name, value, expires) {
  const date = new Date();
  date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000); // 设置过期时间
  const expiresString = "expires=" + date.toUTCString();
  document.cookie = name + "=" + value + ";" + expiresString + ";path=/;domain=xxxxxx;";
}
<!-- 获取cookie的值 -->
function getCookie(name) {
    const cookieName = name + "=";
    const cookies = document.cookie.split(";");
    for (let i = 0; i < cookies.length; i++) {
      let cookie = cookies[i];
      while (cookie.charAt(0) === " ") {
        cookie = cookie.substring(1);
      }
      if (cookie.indexOf(cookieName) === 0) {
        return cookie.substring(cookieName.length, cookie.length);
      }
    }
    return "";
  }
  <!-- 删除cookie的值 -->
  function deleteCookie(name) {
    document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
  }
  
  export {setCookie,getCookie,deleteCookie}

引入cookie.js文件并操作

import { setCookie, getCookie ,deleteCookie } from "./utils/cookie.js";
<!-- 保存cookie -->
 setCookie("token", token的值, 7);//cookie储存的键名、键值、过期时间(天)  
<!-- 获取cookie -->
 const token = getCookie("token");
<!-- 删除cookie -->
 deleteCookie("token");

以上便是作者对于cookie免登录的一些使用;欢迎提出批评

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值