zxjxzj9 最近的时间轴更新
zxjxzj9

zxjxzj9

V2EX 第 710058 号会员,加入于 2024-09-11 13:40:06 +08:00
今日活跃度排名 18570
zxjxzj9 最近回复了
@litchinn 答案是其实根本就不需要续签,针对第一方应用的时候,验证信息(账号密码 passkey 等)全都保存在第一方后端里,发行任何 token 都需要完整信息验证,这种情况下是续签是为了续签而续签(降低数据库访问),是实际操作上的处理,而并非 refresh token 设计出来的本意。oauth 2.0 之所以设置成两个 token ,是因为标准上来说,oauth2.0 希望客户端无法知道第三方给的 access token 内部的具体细节,而给了 refresh token 就相当于第三方信任了当前客户端,并且留了一手可以随时撤销授权的能力。 在进行授权操作的时候,第三方完全可以不给 refresh token ,只给 access token (比方说第三方登录的时候只给一个 access token 来让当前客户端拿到用户名,不给继续访问后续信息的权限)。
@lusxh 操作上当然都可以,你把 refreshtoken 做成过期时间很长的 jwt ,每次校验 refresh 的时候也不用过数据库。问题就在于这样做拆分就没有意义了,直接用 access token 校验不就好了么。你这样问的就是,我不查数据库有没有办法维护一个 token 的状态,那答案肯定是否定的。

不过 oauth2.0 并没有规定这些乱七八糟的,这个框架只明确规定了客户端应该利用获取 access token 这个行为来获得第三方网站的授权,注意是第三方,而不是在客户端上直接输入第三方网站的密码来获取授权。access token 在标准里也就说了是一个授权字符串,refresh token 是获取 access token 的字符串,根本没人管你怎么验证。你实现成第三方客户端只要把 114514 填进 access token 发给你就算 Authorized ,refresh token 只要是 1919810 你就返回 114514 都没人管你。

只不过后面 jwt 等无状态 token 的技术出现了,大家就开始往这个标准上套,然后总结出一套最佳实践就是无状态 access token+有状态 refresh token ,其中无状态 access token 就可以直接用 jwt 的方式实现(也有不用 jwt 的,google oauth api 就不是 jwt )。这样不管是第一方还是第三方的验证,都可以在无状态和有状态验证的优缺点之间取得一个平衡。还有不少人其实连 oauth 2.0 一开始是给第三方授权的都不知道,第一方授权也这么写,然后不知道这标准为什么要这么定义,就去硬套说什么给用户无感刷新用,这就是为了凑个理由强行说了。你第一方对自己的客户端,直接把 refreshtoken 做成 jwt 一直无状态也没人管你,反正发行 token 的时候用户肯定要敲账号密码的,账号密码也都存在你这里,谁来管你呢?
理论上一直用一个 token 来鉴权也不是不行,问题就在于 jwt 这样的无状态 token 不改秘钥不设置过期时间,token 发下去就会永久有效。为了让服务端有办法能让 token 过期但是又利用无状态特性,实践上把这一个 token 拆成两个,验证的时候用 access token ,让鉴权的时候不需要访问数据库直接端侧完成。refresh token 完全可以理解成一个 session id, 只要会话不过期服务端就可以给你续签,好处就是直接把请求 db 的次数用 access token 全压下去了。 这两个 token 也没明说非要用 jwt ,只不过如果要用的话全用 jwt 可以少造点轮子。
9 天前
回复了 red13 创建的主题 程序员 chatgpt 还是比豆包要聪明太多。。。
@73c685dc grok 主要是能搜推特,东西多,纯聊天场景比 gpt 合适,而且回你的话更像人话一点。我现在看到 gpt 那个固定行文都有种恐怖谷的感觉。
@dynastysea 这就和国内运营商的便宜网络一个道理,看着好像套餐便宜,实际上上行只有下行十分之一,带个固定公网 ipv4 能上天,不自己懂一堆网络知识别说翻墙了运气不好 dns 被劫持天天看 12345 ,实际上除了付的钱稍微少了点其他和国外比都是垃圾。vps 主要卖的就是带宽,你带宽只有人家十分之一,价格乘十倍才能算得上和人家在一个起跑线上,和国不国情有什么关系,我又不需要考虑这些
@dynastysea 说反了吧,你直接去买国内的包比国外贵的,国外的上来都是 1Gbps 带宽,国内都是小水管
肯定是御三家最强。实际体验综合价格现在反而是被喷的最多的 openai 家最好,尤其是 5.2 一下上下文拉的超级大,很多时候可以不仅只是写代码,还能写那种非标准代码的自定义规则表达式,准确度比起之前的各种模型提升真的超大,真的是帮大忙了
16 天前
回复了 cmos 创建的主题 程序员 要是用 Rust 就不会出问题了
谁说的用 rust 就不会出问题,Cloudflare 一行 rust 代码把全世界互联网干碎一晚上不记得了?
上班 Elecom 轨迹球,下班雷蛇巴蛇 v3 有线版。其实我更喜欢轨迹球因为这东西不需要任何大面积移动区域,但是电脑多多少少还是需要打点游戏的所有还是保留了一个鼠标。 轨迹球是 elecom 的 M-XT3DRBK ,这款比起他家的其它款&罗技的那些都要体积小很多,而且对手掌支撑非常好,是个很不错的模具,就是手太大的可能会嫌小。还有一个就是轨迹球实在是个小众产品导致更新太慢了,这款入门款一直就没有蓝牙的三模款式,非常难受。
30 天前
回复了 zhuwd 创建的主题 软件 UU 远程现在支持 mac 被控了
UU 远程在局域网内和 sunshine moonlight 串流比怎么样? 4:4:4 能比 sunshine 原生的哪个 hevc 颜色好吗?
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   931 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 23:19 · PVG 07:19 · LAX 15:19 · JFK 18:19
♥ Do have faith in what you're doing.