Javascript 如何在浏览器上存储laravel passport令牌以及如何以及何时发送刷新令牌
我正在使用laravel passport生成访问令牌和刷新令牌Javascript 如何在浏览器上存储laravel passport令牌以及如何以及何时发送刷新令牌,javascript,laravel,oauth-2.0,laravel-5.3,Javascript,Laravel,Oauth 2.0,Laravel 5.3,我正在使用laravel passport生成访问令牌和刷新令牌 如何以及何时检查令牌是否过期以及如何请求新令牌 如果您有一个JavaScript应用程序,您可能应该使用OAuth2隐式流,它为您提供一个访问令牌及其过期时间。因此,不要使用与刷新令牌一起工作的自动化代码授权流-它需要一个在浏览器中无法安全保存的客户端机密 获取访问令牌后,使用window.setTimeout()计划其刷新。您可以使用请求参数prompt=none(请参阅)在无需用户交互的情况下刷新它。如果令牌在其常规超时之前失
如何以及何时检查令牌是否过期以及如何请求新令牌 如果您有一个JavaScript应用程序,您可能应该使用OAuth2隐式流,它为您提供一个访问令牌及其过期时间。因此,不要使用与刷新令牌一起工作的自动化代码授权流-它需要一个在浏览器中无法安全保存的客户端机密 获取访问令牌后,使用
window.setTimeout()
计划其刷新。您可以使用请求参数prompt=none
(请参阅)在无需用户交互的情况下刷新它。如果令牌在其常规超时之前失效,您将从后端获得“HTTP 401 Unauthorized”响应。在这种情况下,请检查令牌的有效性,并在必要时获取一个新的令牌
将访问令牌作为cookie不是一个好主意,因为它会附加到每个请求(具有相同的域、端口和可能的路径),这可能是一个安全问题。将其保存在
sessionStorage
为什么不在页面加载时保存?我正在使用Ajax,令牌存储在何处?我正在Cookies中存储访问令牌和刷新令牌,因此您可以在页面加载时使用javascriptfor refresh令牌执行此操作。刷新令牌需要客户端机密。但我在代理服务器上对客户端保密。