网站的记住我功能与用户登录持久化
1.先决条件:拿到了后端发的凭证并做了持久化储存
2.在1的基础上,加上一个记住我功能,记住我的体现暂时定为:
a.不勾选记住我:在浏览器的对话窗不关闭的情况下,凭证是存在有效的,但关闭了对话框,凭证就会过期。
b勾选记住我:在浏览器的对话窗不关闭的情况下,凭证是依然存在有效的,并且下一次访问本网站能展示出上一次登录用户的信息。
3.实现:
将是否记住我作为设置凭着储存时长的依据,
a.不勾选记住我:凭证过期时间为会话时间
b勾选记住我:凭证过期时间为3天、7天等前端自定义的时间
4.代码实现
cookieOptions
setCookies(apiResult: any) {
const isRememberMe = JSON.parse(localStorage.getItem("remember_me"));
if (isRememberMe) {
this.cookieOptionsServiceService.setExpirationDays(7)
} else {
this.cookieOptionsServiceService.setExpirationDays(null)
}
const { expirationDays, cookiePath } = this.cookieOptionsServiceService.getOptions()
this.cookieService.set(
"username",
apiResult.userInfo.username,
expirationDays,
cookiePath
);
}