哪一层检查隐式授权OAuth 2.0流中的访问令牌?
上下文 :用户尝试访问浏览器中的网站'A',但'A'依赖于另一个Web应用程序'B'(认证服务器)使用“隐式授权”OAuth 2.0流对用户进行认证和授权。
问题:当用户第一次访问网站“A”中的网页时,网站“A”如何知道该第一次请求没有有效的访问令牌,然后将该请求重定向到网站“B”?
网站'A'的'网络服务器'是否对访问令牌进行检查?
隐式流动解决方案
Web服务器上没有任何代码执行的Web应用程序使用此解决方案 - 而Web UI是单页应用程序 - 这与您的解决方案完全相同吗?
服务器侧Web应用程序解决方案
如果你的解决方案与上述不同,那么它听起来像你有一个服务器端的Web应用程序 - 在这种情况下,隐式流不是正确的解决方案。
如果您确实拥有单页应用程序
使用OAuth 2.0和Open ID Connect with Single Page Apps有一点学习曲线。 我会推荐优秀的OIDC客户端库,它会为你做很多工作。
出于兴趣,我已经围绕OAuth 2.0解决方案(包括SPA)编写了详细的博客+代码示例。 我希望你可以浏览它来提高你的理解力 - 也许从本概述开始吧。
JavaScript应用程序“网站A”可能会在某处保留访问令牌及其到期时间 - 例如在会话存储中。 因此,在加载时,应用程序可以检查访问令牌的存在及其到期时间。 到期时间与来自auth提供商的重定向URL( expires_in
参数)中的令牌一起传递。
上一篇: Which layer checks for Access Token in an Implicit Grant OAuth 2.0 flow?