【发布时间】:2019-12-22 04:16:08
【问题描述】:
如果我使用 OpenID connect 进行身份验证,我可以对我的 SPA 进行身份验证。
我现在如何使用获得的访问令牌来访问我自己的 REST 资源?
这是一个简单的问题,但我找不到满意的答案。
我总是找到一个突出的答案是“没有后端时使用 oidc”。
现在这让我想知道是否曾经创建过不需要后端的 web 应用程序。
当弹出在客户端中存储刷新令牌的问题时,Oidc 几乎总是答案(例如在“使用 oidc,它是一个更好的架构并放弃刷新令牌”),但它并没有真正解释任何事情。
因此,当用户使用 Google 等登录时,他会获得一个身份和一个访问令牌(以确保该用户是他声称的那个人)。
那么如何使用它在您自己的 REST 服务上进行身份验证呢?
我认为它是无状态的唯一真正方法是在每次向 REST api 请求时在服务器上向提供者发送另一个请求,以将身份与那里的访问令牌的有效性相匹配。
如果没有,我们将退回到好的 'ol session vs jwt 讨论,这似乎与 oidc 不太相符,因为现在我们正在复制身份验证逻辑。
并且浏览器中好的 'ol 刷新令牌通常被宣传为一个坏主意,尽管您可以将访问令牌保留在浏览器会话存储中(根据 js oidc 客户端库),使用提供程序自动刷新它们,那很好(- .-)。
我又跑圈了。
任何人都可以为我安排这个,请打破循环?
【问题讨论】:
标签: oauth-2.0 single-page-application openid openid-connect