【发布时间】:2016-12-08 19:30:49
【问题描述】:
我刚开始学习身份验证和授权,我正在尝试了解 REST API 的 JWT 和 OAuth。
我一直在做一些研究,但仍有几点不清楚:
JWT
- 令牌是否包含所有信息以验证请求是否安全?换句话说,在服务器上生成令牌时,我是否需要将其与用户名/ID 一起保存在数据库中,以验证对 API 进行的每个后续调用?
- JWT over HTTP 是否足够安全,还是需要 HTTPS?
OAuth
- 按照我的理解,我可以使用 OAuth 将授权委托给第三方应用程序(例如 Facebook)。如果身份验证成功,我会从身份验证调用中收到一个令牌。然后我可以使用这个令牌来传递对我的 API 的所有调用,因为令牌是由受信任的第 3 方应用程序 (Facebook) 发布的。我可以解码令牌,验证令牌是否安全有效,然后继续我需要在我的 API 中执行的任何操作。换句话说,我将身份验证完全外包,无需在某处存储用户名和密码。对吗?
【问题讨论】: