我有三个应用程序:与资源服务器,授权服务器和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应用程序将执行此操作:
- 我有有效的令牌吗?否
- 开始隐式授予
- 从授权服务器接收令牌
- 将令牌存储在内存中
var token = ....
- 使用令牌在服务器上调用API端点
- 重复步骤5,直到令牌不再有效
- 回到步骤1
下一步是观看视频并了解有关隐式赠款类型
的更多信息正如您已经猜到的那样,沿着在服务器上获取令牌然后将其发送到非安全客户端的路线,以您可能不需要的方式揭示您的应用程序。