我正在为现有产品构建REST服务。现在要对这些进行身份验证,需要有一些机制。为了给出规范,我有一个存储用户ID和密码的Db。我必须使用这些凭据进行身份验证。
上面我应该使用OAuth还是JWT?我更喜欢使用JWT首先生成令牌并在每个请求中传递令牌。
另外根据我的理解,我了解当你有多个消费者使用Facebook登录等游戏/应用时,应该使用OAuth。就我而言,我没有多个消费者。
请告知
答案 0 :(得分:1)
尽管OAuth确实是一个授权框架,但它确实有助于JWT。 JWT是一个令牌规范,这意味着你如何管理和发布令牌很大程度上是未定义的。例如,当您的令牌到期时,您是否希望您的用户突然退出?默认情况下,如果您使用具有特定持续时间的令牌,如果您要检查过期令牌,则会发生这种情况。
OAuth身份验证服务器可以用于在JWT中发出访问令牌和刷新令牌。访问令牌将包含在每个请求中,并且当访问令牌过期或即将过期以获取新的访问令牌时,可以使用刷新令牌。考虑到撤销用户对您的应用程序的访问权限的潜在需求时,这非常有用。如果您设置了短访问令牌生命周期,那么您可以通过删除刷新令牌来更快地撤消访问权限。
这些技术是不同的,不能直接比较,因为它们解决了不同的问题,并且用于不同的用途。