技术问题:管理后台怎么实现 免密登录?

2020-11-13 18:38:34 +08:00
 kikione

场景是这样: 之前登录过了,打开过页面,然后关闭了整个页面。 再次输入域名,可以不用再次登录,直接进入页面。

        这个是怎么实现的?大佬们给小白赐教一下
2835 次点击
所在节点    程序员
18 条回复
just1
2020-11-13 18:39:36 +08:00
凭证储存于 localstorage
wunonglin
2020-11-13 18:44:35 +08:00
cookie
czk1997
2020-11-13 18:45:31 +08:00
这不就是无超时的 cookie 吗。去看看各种登录系统的记住我怎么实现的就好了。
我以为你说的 passwordless 。。
kaiki
2020-11-13 18:47:55 +08:00
cookies 就行
举个简单的例子,登录后,服务器给你生成以下几个 cookie
uid//你的账号或者你的账号 ID
key//随机生成的 key
token//你的 uid 和 key 加盐通过后台算法生成的字符串
你再次访问,服务器直接验证你的 uid 和你的 key 加盐能不能生成 token,等于服务端帮你完成了一次登录操作
cmdOptionKana
2020-11-13 19:05:23 +08:00
cookies 很可能就是你想要的东西。另外,cookies 一般是通过 session 来设置,特别是如果你使用了某种 web 框架的话,你可以在文档里找一下关于 session 的章节。
systemcall
2020-11-13 19:13:31 +08:00
不知道浏览器指纹行不行。如果用浏览器指纹的话,清除了 cookies 也没关系
40EaE5uJO3Xt1VVa
2020-11-13 19:31:33 +08:00
session 和 cookie 存活时间设置的够大就行了,cookie 加密强一些避免被欺骗攻击,一星期就差不多了,一星期两星期的,重新登录了客户也不会有感觉
tikazyq
2020-11-13 19:38:02 +08:00
不做 token 校验就可以直接访问了
xuanbg
2020-11-13 19:40:12 +08:00
localstorage 里面保存登录凭证,可以免密登录到凭证失效。
localstorage 保存用户名密码,可以永久免密登录。注意密码不要存明文。如果后端要你传的是明文,那就赶紧找下家吧。
toomlo
2020-11-14 08:38:59 +08:00
@systemcall #6 是指 useragent 吗?如果是的话,那安全性基本没有,收集网上大部分浏览器的 ua 然后批量测试登录系统就可以实现登录了
Nuttertoo1s
2020-11-14 09:00:05 +08:00
@cmdOptionKana 不应该是 session 基于 cookies 设置吗
cmdOptionKana
2020-11-14 10:05:29 +08:00
@Nuttertoo1s 一个意思,中文太难了……
uselessVisitor
2020-11-14 19:10:34 +08:00
记住我?把验证信息放在 cookie 里就行
NotFoundEgg
2020-11-14 22:29:39 +08:00
用 cookie 存 token,每次请求都把 token 带上
服务端查这个 token 是否存在以及是否过期,如果存在且不过期就返回 token 对应用户的数据
syozzz
2020-11-15 15:20:30 +08:00
@xuanbg 你用户名密码都存 localstroage 里了, 那明不明文也没啥区别了==
xuanbg
2020-11-15 17:18:28 +08:00
@syozzz 存 localstroage 已经是最安全的办法了。不入侵到你的电脑上面拿不走。

然后,是不是明文不一样啊,你明文的话,泄漏了就内裤都没啦。哈希一下就好多了,至少你拿去别的地方很难有用。至于加密,那就真的没必要了,反正前端的东西不存在保密的可能性。
systemcall
2020-11-16 00:15:03 +08:00
@toomlo UA 以外,还有 canvas 指纹、Web RTC 指纹、audio codec 指纹之类的
可以拿到的数据全都拿下来,但是用户更新了浏览器可能会有变化
结合 cookies 和 local storage 之类的来识别的话,安全性还是很高的。只是单纯地拿到 cookies 之类的信息应该过不了浏览器指纹吧
toomlo
2020-11-16 00:51:47 +08:00
@systemcall #17 学习了~~~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/724974

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX