服务端使用 Passport 认证 API 开发 App 该选择何种授权方式?
需求#
服务端使用 Passport 进行 API 认证,而 Passport 是一个 OAuth2.0 server 的实现,那么,我仙子啊还要开发一个 APP , APP 上使用用户名和密码登录,通过 oauth 认证,应当选择何种授权方式?
可选授权方式#
在 Passport 实现的 OAuth2.0 server 中有四种:
- 密码授权令牌
- 简化授权令牌
- 客户端授权牌
- 私人访问令牌
如何选择?#
上面「可选授权方式」中提到了,除了「私人访问令牌」其他均需要跳转,简化令牌无需传递 client_secret
但是仍然需要跳转,而「私人访问令牌」需要自己写路由做用户登录后创建令牌。而「私人访问令牌」的定义是用户自己登录后选择颁发给自己私用,个人感觉不应该作为 APP 授权的方式,而「密码授权令牌」可满足需求,但是有一个重要点 client_id
和 client_secret
不应该提供给 OR 设备的,不可能在 APP 打包编译的时候将 client_secret
等安全敏感信息硬编码到 APP 当中吧?
感谢#
OAuth2 概念了解了很多,如果作为授权给其他的,上述问题都不存在,问题就在于 我自己要用 Passport 做 API 接口认证,而自己还要开发 APP ,那问题就是我该选择何种方式?希望大家能解惑。
谢谢?。
推荐文章: