场景是这样: 之前登录过了,打开过页面,然后关闭了整个页面。 再次输入域名,可以不用再次登录,直接进入页面。
这个是怎么实现的?大佬们给小白赐教一下
1
just1 2020-11-13 18:39:36 +08:00
凭证储存于 localstorage
|
2
wunonglin 2020-11-13 18:44:35 +08:00
cookie
|
3
czk1997 2020-11-13 18:45:31 +08:00 via Android
这不就是无超时的 cookie 吗。去看看各种登录系统的记住我怎么实现的就好了。
我以为你说的 passwordless 。。 |
4
kaiki 2020-11-13 18:47:55 +08:00
cookies 就行
举个简单的例子,登录后,服务器给你生成以下几个 cookie uid//你的账号或者你的账号 ID key//随机生成的 key token//你的 uid 和 key 加盐通过后台算法生成的字符串 你再次访问,服务器直接验证你的 uid 和你的 key 加盐能不能生成 token,等于服务端帮你完成了一次登录操作 |
5
cmdOptionKana 2020-11-13 19:05:23 +08:00
cookies 很可能就是你想要的东西。另外,cookies 一般是通过 session 来设置,特别是如果你使用了某种 web 框架的话,你可以在文档里找一下关于 session 的章节。
|
6
systemcall 2020-11-13 19:13:31 +08:00 via Android
不知道浏览器指纹行不行。如果用浏览器指纹的话,清除了 cookies 也没关系
|
7
40EaE5uJO3Xt1VVa 2020-11-13 19:31:33 +08:00
session 和 cookie 存活时间设置的够大就行了,cookie 加密强一些避免被欺骗攻击,一星期就差不多了,一星期两星期的,重新登录了客户也不会有感觉
|
8
tikazyq 2020-11-13 19:38:02 +08:00
不做 token 校验就可以直接访问了
|
9
xuanbg 2020-11-13 19:40:12 +08:00
localstorage 里面保存登录凭证,可以免密登录到凭证失效。
localstorage 保存用户名密码,可以永久免密登录。注意密码不要存明文。如果后端要你传的是明文,那就赶紧找下家吧。 |
10
toomlo 2020-11-14 08:38:59 +08:00
@systemcall #6 是指 useragent 吗?如果是的话,那安全性基本没有,收集网上大部分浏览器的 ua 然后批量测试登录系统就可以实现登录了
|
11
Nuttertoo1s 2020-11-14 09:00:05 +08:00
@cmdOptionKana 不应该是 session 基于 cookies 设置吗
|
12
cmdOptionKana 2020-11-14 10:05:29 +08:00
@Nuttertoo1s 一个意思,中文太难了……
|
13
uselessVisitor 2020-11-14 19:10:34 +08:00 via Android
记住我?把验证信息放在 cookie 里就行
|
14
NotFoundEgg 2020-11-14 22:29:39 +08:00
用 cookie 存 token,每次请求都把 token 带上
服务端查这个 token 是否存在以及是否过期,如果存在且不过期就返回 token 对应用户的数据 |
16
xuanbg 2020-11-15 17:18:28 +08:00
@syozzz 存 localstroage 已经是最安全的办法了。不入侵到你的电脑上面拿不走。
然后,是不是明文不一样啊,你明文的话,泄漏了就内裤都没啦。哈希一下就好多了,至少你拿去别的地方很难有用。至于加密,那就真的没必要了,反正前端的东西不存在保密的可能性。 |
17
systemcall 2020-11-16 00:15:03 +08:00 via Android
@toomlo UA 以外,还有 canvas 指纹、Web RTC 指纹、audio codec 指纹之类的
可以拿到的数据全都拿下来,但是用户更新了浏览器可能会有变化 结合 cookies 和 local storage 之类的来识别的话,安全性还是很高的。只是单纯地拿到 cookies 之类的信息应该过不了浏览器指纹吧 |
18
toomlo 2020-11-16 00:51:47 +08:00
@systemcall #17 学习了~~~
|