最近思考了一个问题,手机端如何保存 client_secret 的最佳实践 ?
事情是这样的,经过了一年的业务升级迁移,node 做的 gateway 已经逐渐稳定,oauth2 也用 node 写了一个,为了搞明白原理而已。https://www.v2ex.com/t/731916
用户认证 是通过 gateway 的,为了避免用户直接拿到 token ,我把 token 放在了 session 里面,这样用户么有明文 token 来请求接口了。
现在突然想到,如果是手机端如何处理呢?如果是 用 OAuth2 会发送 client_secre 来换取 AT 。再通过 AT 来请求后端接口获取数据,看了几个 flutter 的例子,client_secret 都是本地储存,因为手机端我认为不被信任,因为可以通过各种手段来获取到 client_secret
搜到的资源如下 :
有个叫做 PKCE 的东西 OAuth2 协议的扩展版本是支持的,这里是产生动态随机码,跳过了 client_secret 要保存在客户端的问题。
但是如果授权服务器不支持 PKCE 的情况下有没有什么最佳实践呢 ?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.