![]() |
1
greensea 3 天前 ![]() 直接自己写一个,没多少行代码的
|
![]() |
3
SethShi 3 天前 ![]() 哪里不理解, gin-contrib/sessions 用起来就挺简单, 只用一个 key, 这个是加密用的
至于 gorilla/sessions 有多个 key, 是为了轮换 key, 因为 key 可能会泄露, 就可以每段时间换一个 如:一开始 A, 一段时间后是 A1, A (A1 用来加密, A1 用来解密, 解密失败, 用 A 再解密一次) 所谓这些库都是用户请求之后, 本质都是生成一个唯一 id 存入到 response.setHeader('set-cookie', 'uuid 什么的都可以, 还可以加域名') 然后服务端下一次来的时候, 可以通过这个 uuid 去 redis/内存去获取存储的值 |
![]() |
4
Gilfoyle26 3 天前 ![]() @shendaowu #2 没有失败,永远不会进步
|
![]() |
5
treexie 3 天前 ![]() 1 、cookie 中保存的是 session 的 id ,例如:JSESSIONID=xxx(随机字符串,例如 uuid)
2 、session 是保存在数据库(常用 redis),查询的时候通过 xxx 来查询对应的 session 数据(想保存什么数据应用自己定义) 3 、担心 xxx 被猜到,于是增加一个签名值,sha256(xxx+密钥),这样别人就算猜到 xxx 也无法伪造签名值。有些框架会使用 JSESSIONID=xxx.signature 的形式保存,有些是分开保存,另外创建多一个 cookie 保存签名值 JSESSIONID_SIGN=signature 4 、密钥也需要定期更换,防止密钥泄露后,别人伪造签名值,但是密钥更换后,之前的 session 都无法验证了,所以需要保存一段时间的密钥( keyPairs ),验证时用最新的密钥验证失败后,再用历史密钥验证(有些框架在此时又会重新一个新的签名,刷新 cookie 保证签名值是最新的) |
![]() |
6
default996 3 天前 via Android ![]() 我现在一般都是把库项目的 readme 和 example 复制到一个文件中,然后让 ai 给我写一个最小 demo 并解释
|
7
tairan2006 2 天前 via Android ![]() 自己做个 token header 不就完了,还要第三方库?
|
![]() |
8
ericguo 1 天前
要不你看看 sponge ( https://go-sponge.com/zh/getting-started/overview.html ) ?
其实这些都差不多的,甚至你直接要求 codex 给你写一个也很难出错的。 |
![]() |
9
MIUIOS 19 小时 22 分钟前
已经好久没用过 cookie 了
|