上下文 : 用户试图在浏览器中访问网站“A”,但“A”依赖于另一个Web应用程序“B”(身份验证服务器)进行身份验证。使用“隐式授权”OAuth 2.0流程授权用户。
问题: 当用户第一次访问网站“A”中的网页时,网站“A”如何知道此第一次请求没有有效的访问令牌,然后将此请求重定向到网站“B”?
网站“A”的“网络服务器”是否对访问令牌进行了此检查?
答案 0 :(得分:1)
JavaScript应用程序"网站A"可能会将访问令牌及其到期时间保留在某处 - 例如session storage。因此,在加载时,应用程序可以检查访问令牌的存在及其到期时间。到期时间与来自身份验证提供程序的重定向URL(expires_in
参数)中的令牌一起提供。
答案 1 :(得分:1)
隐含流量解决方案
此解决方案由Web应用程序使用,其中Web服务器上没有代码执行 - 您的Web UI是单页应用程序 - 这与您的解决方案完全相同吗?
服务器端WEB应用程序解决方案
如果您的解决方案与上述解决方案不同,那么听起来您有一个服务器端Web应用程序 - 在这种情况下,Implicit Flow不是正确的解决方案。
如果您确定拥有单页应用
使用OAuth 2.0和Open Id Connect与单页应用程序有一点学习曲线。我会推荐优秀的OIDC Client Library,它会为你做很多工作。
出于兴趣,我已经围绕OAuth 2.0解决方案编写了详细的博客+代码示例,包括SPA。我希望您可以浏览它以提高您的理解 - 可以从This Overview开始。