OAuth2 刷新令牌。如何存储在客户端
OAuth2 Refresh Token. How to store it on client-side
有授权OAuth2服务器获取访问+刷新令牌。
据我了解,访问令牌可以存储在客户端,因为它的生命周期很短。但是 refresh token 可以存储在那里吗?根据我读过的信息,没有安全的方法可以做到这一点(here)
所以,我必须实现单独的服务器端服务,只是为了存储刷新令牌。
我说的对吗? 存储刷新令牌只有一种可能的方法吗?
P.S。客户端:angularJS
是的,你是对的。如果您无法通过授权服务器进行身份验证(即传递客户端 ID 和密码),那么您将只能获得一个短暂的访问令牌。
由于 Angular 代码在客户端上,它会为您的客户端保密是不安全的。因此您无法将您的客户端密码传递给 Auth 服务器,因此您无法进行身份验证。
此外,您的服务器代码不仅会存储令牌,还应托管一个端点,该端点将接受授权代码,然后使用该代码(和您的客户端凭据)调用授权服务器以获取令牌和刷新令牌。
在用户成功登录并授予对您的应用程序的访问权限后,授权代码将通过来自授权服务器的调用通过 http 重定向提供给您的服务器端点。
有授权OAuth2服务器获取访问+刷新令牌。 据我了解,访问令牌可以存储在客户端,因为它的生命周期很短。但是 refresh token 可以存储在那里吗?根据我读过的信息,没有安全的方法可以做到这一点(here)
所以,我必须实现单独的服务器端服务,只是为了存储刷新令牌。
我说的对吗? 存储刷新令牌只有一种可能的方法吗?
P.S。客户端:angularJS
是的,你是对的。如果您无法通过授权服务器进行身份验证(即传递客户端 ID 和密码),那么您将只能获得一个短暂的访问令牌。
由于 Angular 代码在客户端上,它会为您的客户端保密是不安全的。因此您无法将您的客户端密码传递给 Auth 服务器,因此您无法进行身份验证。
此外,您的服务器代码不仅会存储令牌,还应托管一个端点,该端点将接受授权代码,然后使用该代码(和您的客户端凭据)调用授权服务器以获取令牌和刷新令牌。
在用户成功登录并授予对您的应用程序的访问权限后,授权代码将通过来自授权服务器的调用通过 http 重定向提供给您的服务器端点。