我正在努力使用oauth 2.0来替换现有的login / pw系统。除了一个问题外,效果很好:
我意识到这只是与访问令牌绑定。我想知道的是
答案 0 :(得分:3)
浏览器中的每个标签都是单独的浏览器会话。浏览器不应允许选项卡A cookie或会话信息对选项卡B可见。如果确实如此,则选项卡A中的恶意代码可能会盗取您的银行帐户信息,密码,访问令牌等,因为您的银行帐户已打开表B。
因此,即使您在另一个标签中的其他帐户下登录后,示例中的第一个标签仍然显示第一次登录的帐户信息这一事实是预期的行为,如果设计的话,如果相应的URL标签位于不同的域上。
如果选项卡正在查看相同的URL或同一个域,则刷新第一个选项卡以反映您在第二个选项卡中所做的事情应该是刷新会话状态和重新获取Cookie的问题。这是Web应用程序代码的责任,而不是浏览器IMO。
要检查oauth2访问令牌是否有效,您有两种选择:
某些OAuth2令牌服务器只返回GUID或其他不透明的标识符,该标识符不包含客户端的其他信息。
但是,许多OAuth2令牌服务器正在将访问令牌实现为JWT(JSON Web令牌)。在访问令牌中携带客户端可见数据提供了一种支持客户端应用程序的基于声明的细粒度授权机会的方法。通常签署JWT以确保真实性和保真度。 JWT可以加密以保护隐私,但这种情况非常罕见。
如果OAuth令牌服务器以JWT格式返回访问令牌,那么您可以解码JWT以从“exp”中提取令牌到期时间。内部声称。
某些OAuth2令牌服务器还提供API以将访问令牌验证为Web请求。这对于分发不透明访问令牌的系统来说基本上是必需的。 Google的OAuth实施提供了访问令牌验证功能:https://developers.google.com/accounts/docs/OAuth2UserAgent#validatetoken