【发布时间】:2020-05-16 14:00:48
【问题描述】:
谁能告诉我这些架构中哪些是有状态/无状态的?
- 带有会话用户身份验证的 REST API 存储在 redis 上。
- 带有 JWT 用户身份验证的 REST API 与 redis 上的撤销列表一起存储。
- 带有 oauth2 用户身份验证的 REST API。
我还想知道,就 oauth2 而言,我是否可以将资源和授权服务器作为同一个 API。是否值得拥有自己的授权服务器?
什么样的用户身份验证和应用身份验证可以轻松且安全地用作网站和移动应用所使用的 REST API 的启动?我知道这将是 2 个身份验证,一个用于用户,一个用于应用程序。
这对我来说更像是对我读过的所有内容的总结,所以我只需要简短的答案 - 已经阅读了很多内容。
【问题讨论】:
-
无状态意味着您不会在两次服务器调用之间保持状态。如果你有一个用户会话,不管是什么存储系统,那么你就有了一个状态。
-
感谢您的回答,这是否意味着第二个场景也是有状态的?这实际上将用户状态存储在黑名单中。
-
第二种情况是无状态的,因为您没有任何会话,您将检查令牌以验证调用方凭据。从我的观点来看,第三种情况是要走的路。但请记住,OAuth2 并非设计用于用户身份验证,而是允许您的 API 接受来自资源所有者(例如用户)委托的客户端(例如 Web 应用程序)的请求
标签: rest api authentication oauth-2.0 jwt