没有 Oauth 的 JWT 实现
Posted
技术标签:
【中文标题】没有 Oauth 的 JWT 实现【英文标题】:JWT implementation with out Oauth 【发布时间】:2016-03-08 18:36:33 【问题描述】:我想用 Angular js 和 REST 服务用 JWT 和 out oauth 创建一个应用程序。我想知道如何实现刷新令牌或生成一周令牌的方式,例如,我必须做什么? 架构是:Java、REST、Angular.js 和 Bootstrap
user send login and password
the server return token
app user token for access to rest api
rest return result
【问题讨论】:
【参考方案1】:完全可以在不实现整个 OAuth 框架的情况下实现令牌认证方案。您的解决方案需要具备以下特征:
它需要交换凭证以获得访问令牌和刷新令牌(密码授予流程) 您创建的令牌应使用服务器专用的密钥进行签名 验证提供访问令牌的请求。它需要通过断言签名有效且令牌未过期来验证访问令牌 如果提供了有效的刷新令牌,则需要颁发新的访问令牌(刷新令牌授予流程) 访问令牌的生命周期应该比刷新令牌短 如果刷新令牌已被撤销,它应该拒绝刷新令牌(您需要维护已撤销令牌的黑名单。 当刷新令牌用于获取新的访问令牌时,它应该做额外的检查:该帐户是否仍然启用?或与您的业务逻辑相关的任何其他检查。一个开源解决方案是Kong。
如果您想卸载此基础架构,可以考虑使用类似Stormpath 的产品,它可以通过我们的Java Integrations 将 Oauth2 令牌框架添加到现有应用程序中。免责声明:我在 Stormpath 工作,我认为访问令牌和刷新令牌是最好的!
【讨论】:
以上是关于没有 Oauth 的 JWT 实现的主要内容,如果未能解决你的问题,请参考以下文章
在没有 OAuth 的情况下使用 JWT 是不是安全? [关闭]
Spring Security OAuth2 在没有 JWT 的情况下无法工作