Spring Security Oauth 2:如何在JavaScript客户端中使用访问令牌



我有三个应用程序:与资源服务器,授权服务器和JavaScript客户端的REST API在VUEJS上使用,该应用程序应使用REST API。使用授权后获得的访问令牌的问题。首先,我决定使用本地存储或cookie存储访问令牌,但是当我阅读时,它并不安全。建议将cookie与httponly一起使用,但我无法从JS访问。在URL参数中的添加令牌以及不正确的方式。那么,我该怎么办使用REST API?我正在使用授权代码赠款流。

当您拥有JavaScript客户端时,客户端本身应充当 oauth2客户端

含义,服务器不是获得令牌的原因。客户端是浏览器中的JavaScript应用程序,将从授权服务器中获取令牌。

您使用称为implicit的赠款类型来实现这一目标。

在此赠款类型中,没有client_secret,但是您必须具有有效的client_id。您也不会收到刷新令牌。但是您可以接收访问令牌和ID_Token(如果您有OIDC服务器)。

您的问题暗示您执行服务器端赠款(授权code,password等),然后将其发送给JavaScript客户端。这是不正确的。

有关OAuth2的精彩描述,我们发布了此视频:https://www.youtube.com/watch?v=U4BHKCZ2RXK

您的JavaScript应用程序将执行此操作:

  1. 我有有效的令牌吗?否
  2. 开始隐式授予
  3. 从授权服务器接收令牌
  4. 将令牌存储在内存中var token = ....
  5. 使用令牌在服务器上调用API端点
  6. 重复步骤5,直到令牌不再有效
  7. 回到步骤1

下一步是观看视频并了解有关隐式赠款类型

的更多信息

正如您已经猜到的那样,沿着在服务器上获取令牌然后将其发送到非安全客户端的路线,以您可能不需要的方式揭示您的应用程序。

最新更新