Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在浏览器上存储laravel passport令牌以及如何以及何时发送刷新令牌_Javascript_Laravel_Oauth 2.0_Laravel 5.3 - Fatal编程技术网

Javascript 如何在浏览器上存储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(请参阅)在无需用户交互的情况下刷新它。如果令牌在其常规超时之前失

我正在使用laravel passport生成访问令牌和刷新令牌

如何以及何时检查令牌是否过期以及如何请求新令牌

如果您有一个JavaScript应用程序,您可能应该使用OAuth2隐式流,它为您提供一个访问令牌及其过期时间。因此,不要使用与刷新令牌一起工作的自动化代码授权流-它需要一个在浏览器中无法安全保存的客户端机密

获取访问令牌后,使用
window.setTimeout()
计划其刷新。您可以使用请求参数
prompt=none
(请参阅)在无需用户交互的情况下刷新它。如果令牌在其常规超时之前失效,您将从后端获得“HTTP 401 Unauthorized”响应。在这种情况下,请检查令牌的有效性,并在必要时获取一个新的令牌


将访问令牌作为cookie不是一个好主意,因为它会附加到每个请求(具有相同的域、端口和可能的路径),这可能是一个安全问题。将其保存在
sessionStorage

为什么不在页面加载时保存?我正在使用Ajax,令牌存储在何处?我正在Cookies中存储访问令牌和刷新令牌,因此您可以在页面加载时使用javascriptfor refresh令牌执行此操作。刷新令牌需要客户端机密。但我在代理服务器上对客户端保密。