Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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 JWT创作的正确方式_Javascript_Php_Api_Rest_Jwt - Fatal编程技术网

Javascript JWT创作的正确方式

Javascript JWT创作的正确方式,javascript,php,api,rest,jwt,Javascript,Php,Api,Rest,Jwt,我正在开发一个有3个应用程序的平台,可能是4个 第一个是客户端网站,使用phalconPHP创建;第二个是客户端内部网,他可以在那里管理他的网站;第二个是管理员,我可以在那里创建新网站并管理我的客户 最后一个是API,所有东西都应该可以通过API访问 我最初的计划是使用JWT作为创作方法,我有一些疑问 1.-一旦创建了JWT令牌,我需要将其存储在客户端的某个位置,以便在每次新请求时发送,我不知道存储在哪里,以便PHP可以访问它,Javascript也可以访问它,以便我可以使用该令牌发出AJAX请

我正在开发一个有3个应用程序的平台,可能是4个

第一个是客户端网站,使用phalconPHP创建;第二个是客户端内部网,他可以在那里管理他的网站;第二个是管理员,我可以在那里创建新网站并管理我的客户

最后一个是API,所有东西都应该可以通过API访问

我最初的计划是使用JWT作为创作方法,我有一些疑问

1.-一旦创建了JWT令牌,我需要将其存储在客户端的某个位置,以便在每次新请求时发送,我不知道存储在哪里,以便PHP可以访问它,Javascript也可以访问它,以便我可以使用该令牌发出AJAX请求

我需要一种方法以安全的方式实现这一点,HTTPS将始终在我的应用程序中使用,但有一个问题我不知道如何解决

我重复一遍,JWT令牌应该可以被JS和PHP访问。如何以安全的方式执行此操作

此外,我还考虑将PHP_session_id添加到JWT负载中,并添加自动续订,这意味着令牌仅对登录的“用户”有用。这条路安全吗

希望你能帮助我


谢谢

既然您打算使用JWT,您的服务器就不应该使用PHPSSID,因为您的服务器应该是无状态的。不是这样,我想当用户登录时,PHPSSID应该与用户名和密码一起发送,然后如果登录成功,PHPSSID将包含在JWT负载中,通过这种方式,我可以确保如果有人偷了JWT令牌,它将是无用的。这正是状态。如果您使用loadbalancer或类似工具,并且请求转到另一台服务器,那么您的令牌将无效。令牌的过期时间应该很短,并且还应该有另一个重新发行的令牌,您可以在其中更新实际有效的令牌。收到了,谢谢。现在,重要的部分是,我应该将JWT存储在哪里,这样Javascript和用PHP完成的客户端应用程序都可以安全地访问它?看看这个,他们对它的描述非常好。如果您必须只发送php请求,我认为应该使用Cookie,因为使用php您无法读取html5存储。由于您打算使用JWT,您的服务器不应该使用PHPSSID,因为您的服务器应该是无状态的。不是这样,我想当用户登录时,PHPSSID应该与用户名和密码一起发送,然后,如果登录成功,phpssid将包含在JWT负载中,这样我可以确保如果有人窃取JWT令牌,它将是无用的。这正是状态。如果您使用loadbalancer或类似工具,并且请求转到另一台服务器,那么您的令牌将无效。令牌的过期时间应该很短,并且还应该有另一个重新发行的令牌,您可以在其中更新实际有效的令牌。收到了,谢谢。现在,重要的部分是,我应该将JWT存储在哪里,这样Javascript和用PHP完成的客户端应用程序都可以安全地访问它?看看这个,他们对它的描述非常好。如果您必须只发送php请求,我认为应该使用cookies,因为使用php您无法读取html5存储。