V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  jedrek  ›  全部回复第 10 页 / 共 32 页
回复总数  623
1 ... 6  7  8  9  10  11  12  13  14  15 ... 32  
2019-06-07 21:55:52 +08:00
回复了 dt2vba 创建的主题 Go 编程语言 请教如何使用 gorilla/sessions 实现多点登陆
我不确定 jwt 是否考虑了客户端拷贝 token 来实现更多客户端同时使用
2019-06-07 21:51:54 +08:00
回复了 dt2vba 创建的主题 Go 编程语言 请教如何使用 gorilla/sessions 实现多点登陆
在上面的身份鉴定的基础上,另外使用一次性口令。

登录或注册成功后,服务端签发身份令牌和生成并保存新口令,然后将身份令牌和口令同时返回客户端,客户端将身份令牌和口令保存。下一次请求时,客户端携带口令和身份令牌,服务端做两个验证,一是请求的口令是否与已存在的匹配,二是身份令牌是否有效。两者都有效才通过。都验证通过后,返回时,生成新的口令返回给客户端(不需要更新身份令牌),服务端和客户端都需要更新保存新口令,下次请求同理。登出时删掉服务端对应的口令和客户端信息即可。

当第五个客户端登录时,服务端检测当前用户已有四个令牌了,拒绝登录。
当用户拷贝 http headers 试图突破限制时,第五个客户端接收了新的口令,原客户端的口令就会失效,所以还是四个客户端

可以使用随机数做口令,因为是一次性的,具有排他性,所以不需要考虑重放攻击。但是有可能和自己已存在的口令冲突,可以用时间戳+随机数做口令,不需要加密或签名
2019-06-07 14:25:49 +08:00
回复了 dt2vba 创建的主题 Go 编程语言 请教如何使用 gorilla/sessions 实现多点登陆
你要做的其实是 http 的身份鉴定和令牌有效期。

大致流程是在登录或注册成功后,服务端签发一个令牌返回给客户端,令牌常见存放在 cookie 中。客户端在下次请求时携带令牌,服务端验证令牌来判别此次请求的有效性,若令牌有效,说明此次请求的用户就是其声明的身份。反之不能证明身份的就不能通过。

其中的核心就是令牌,令牌中包含两部分信息,数据和签名,由服务端负责签发和验证。

举一个最小化的例子. ID 为 10000 的用户登录成功了,服务端对 ID 进行数字签名。服务端将 ID + 签名结果 拼接起来组成字符串令牌放到 cookie 中返回给客户端。客户端下次请求时将令牌带上,服务端校验令牌格式和数字签名的有效性。签名的目的是防止伪造和篡改,比如数据部分被改成 10001,这个在服务端就不能通过验证。目前比较推荐的签名算法是 ed25519。

如果你需要限制令牌的有效期,原理也是一样的,将用户 ID 和截止时间一起签名返回给客户端。下次验证是否已过截止时间就可以了。

为了美观和统一, 可以将数据部分 base64 编码后再和签名拼接,用 . 号分隔。

不嫌烦的话 jwt 可以做到这个事,虽然它定义的标准很糟糕。

若要考虑修改密码后吊销所有令牌,在设计上又稍微复杂一点。
2019-06-07 00:07:45 +08:00
回复了 dt2vba 创建的主题 Go 编程语言 请教如何使用 gorilla/sessions 实现多点登陆
将一次 request - response 当成一次 session 不可以解决吗?想不通为何一定要整个长 session
2019-06-05 23:32:42 +08:00
回复了 duhaowen 创建的主题 问与答 office 356 family 有人一起拼车吗?还差一位!
还有车位吗?
2019-06-05 23:03:41 +08:00
回复了 feng0vx 创建的主题 问与答 为什么大豆食用油大都是浸出工艺制作
化工方式出油率高,机械压榨方式出油率很低
2019-06-04 16:43:08 +08:00
回复了 warcraft1236 创建的主题 职场话题 HR 跟我约了面试时间,结果用人部门还没筛过我的简历
这种不把面试者当回事的公司,不爆名字留着过端午 ?
2019-05-30 19:29:06 +08:00
回复了 useben 创建的主题 编程 京某云用得我心好累
人家用云的招牌卖虚拟机的,什么 SDK 什么文档,就做做样子。你若想:我买的是虚拟机,一切就都合理了
2019-05-29 12:02:17 +08:00
回复了 lirau 创建的主题 Android 微信的 android 内存占用(以 PSS 为例)
@ruimz 看样子戳到你的痛处了
2019-05-29 11:18:57 +08:00
回复了 lirau 创建的主题 Android 微信的 android 内存占用(以 PSS 为例)
海军即将登陆。
1. 小程序又不是最占资源的,难道你其它应用不占资源吗?
2. 现在手机内存这么大,这么点内存不算啥?
3. 又没人让你用
4. 你的手机有问题
...

简单一句:微信🌶️🐔
2019-05-28 20:28:25 +08:00
回复了 yeemn 创建的主题 macOS [Markdown 编辑器] Blank for macOS 开始 Alpha 测试
有做成笔记带分类目录带计划吗 ?
2019-05-25 23:08:32 +08:00
回复了 vevlins 创建的主题 Flutter flutter 的生态目前够用吗?
完全可以做,不过插件可能达不到开箱即用
2019-05-25 21:02:58 +08:00
回复了 hanxiV2EX 创建的主题 问与答 工作中服务器开发,大佬们都是用的什么环境?
啥情况必须在服务器上写代码呀?
2019-05-10 18:29:41 +08:00
回复了 chinvo 创建的主题 全球工单系统 eZip 更新服务器(cdn.awehunt.com)证书配置错误
Keka 免费
2019-05-07 11:16:19 +08:00
回复了 leelds 创建的主题 2019 有没有用 Rust 开发的?你们都用过什么小众语言?
除了轮子比较少和不完善,各方面都不错
1 ... 6  7  8  9  10  11  12  13  14  15 ... 32  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5489 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 83ms · UTC 09:12 · PVG 17:12 · LAX 02:12 · JFK 05:12
Developed with CodeLauncher
♥ Do have faith in what you're doing.