【问题标题】:JWT implementation with out Oauth没有 Oauth 的 JWT 实现
【发布时间】: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
【问题讨论】:
标签:
java
angularjs
rest
jwt
【解决方案1】:
完全可以在不实现整个 OAuth 框架的情况下实现令牌认证方案。您的解决方案需要具备以下特征:
- 它需要交换凭证以获得访问令牌和刷新令牌(密码授予流程)
- 您创建的令牌应使用服务器专用的密钥进行签名
- 验证提供访问令牌的请求。它需要通过断言签名有效且令牌未过期来验证访问令牌
- 如果提供了有效的刷新令牌,则需要颁发新的访问令牌(刷新令牌授予流程)
- 访问令牌的生命周期应该比刷新令牌短
- 如果刷新令牌已被撤销,它应该拒绝刷新令牌(您需要维护已撤销令牌的黑名单。
- 当刷新令牌用于获取新的访问令牌时,它应该做额外的检查:该帐户是否仍然启用?或与您的业务逻辑相关的任何其他检查。
一个开源解决方案是Kong。
如果您想卸载此基础架构,可以考虑使用类似Stormpath 的产品,它可以通过我们的Java Integrations 将 Oauth2 令牌框架添加到现有应用程序中。免责声明:我在 Stormpath 工作,我认为访问令牌和刷新令牌是最好的!