没有 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 实现的主要内容,如果未能解决你的问题,请参考以下文章

在没有 OAuth2 的情况下刷新 JWT

在没有 OAuth 的情况下使用 JWT 是不是安全? [关闭]

Spring Security OAuth2 在没有 JWT 的情况下无法工作

Oauth2 Spring中的JWT令牌

如何在没有 IdentityServer 或 OAuth 的情况下配置 JWT STS

OAuth2 vs JWT,到底怎么选?