【发布时间】:2018-12-11 23:43:29
【问题描述】:
我对 OAuth 的使用完全感到困惑,我不确定如何在我的场景中使用 oauth。目前我使用“纯”JWT 方法,看起来像这样:
- 客户端(JavaScript 应用程序)将登录名和密码发送到我的 Rest-Endpoint(服务器 (Java))。
- 服务器验证用户信息,读取/生成一些用户角色并将其包装在 JWT 令牌中(带有秘密)
- 服务器将 JWT Token 发送回客户端
- 客户端将使用 Authorizationen Header 执行额外的 Rest-Calls
- 服务器根据角色/用户使用私有密钥和大访问权限验证 Token
现在我想到了 OAuth 的用法,但我很困惑如何使用它来实现场景。
- 我在“auth0”注册了一个应用程序。
- 我使用一个JS库重定向到auth0的登录过程,通过auth0账号登录并消费id_token和access_token
= 我可以将 id_token(带有 RSA256 的 JWT)发送到我的 rest api,使用公共证书对其进行验证,并可以提取一些用户信息
但是:
a) 我读到我不应该使用 id_token 来访问我的 api。相反,我应该使用 access_token (不是 JWT 格式,不会给我任何有关用户的信息)并使用 access_token 来查询用户信息?每个请求都应该是这样吗?!
b) 我没有看到用户角色发挥作用的地方。当我有一些只允许“管理员”或“客户”使用的操作(休息端点)时。我看不出有任何定义它们的可能性。
你看我有点困惑,我希望有人能澄清所有事情。 非常感谢 克里斯
【问题讨论】: