【发布时间】:2020-07-31 03:13:04
【问题描述】:
我正在 localhost:3000 上运行一个反应应用程序。我在默认的 XAMPP localhost 上向我的后端发出 axios 请求以设置cookie。在以前的尝试中,如果我的前端位于默认的 XAMPP localhost 中,我可以设置cookie。但是自从切换到 react 开发服务器,localhost:3000。我无法设置 cookie。
这是我的 php 文件:
header("Access-Control-Allow-Origin: *");
require __DIR__ . './vendor/autoload.php';
use \Firebase\JWT\JWT;
if(isset($_POST)){
//grab secret key from .env file, remember to exclude from gitignore.
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
$key = $_ENV['SECRET_KEY'];
//access post data to for jwt creation
$data = json_decode(file_get_contents("php://input"), true);
$timezone = new DateTimeZone('Asia/Kuching');
$expiry = new DateTime();
$expiry->setTimezone($timezone);
$expiry->modify("+2 days");
$date = $expiry->format("Y-m-d H:i:s.v");
$payload = array(
"ttl"=>$date,
"data"=>$data['tokenValue']
);
$jwt = JWT::encode($payload,$key);
setcookie("accessToken",$jwt,[
'expires'=>$date,
'path'=>'/',
'domain'=>'localhost',
'secure'=>false,
'httponly'=>true,
'samesite'=>'None'
]);
}
可能出了什么问题?我确实将域从“localhost”更改为“localhost:3000”,但它仍然不起作用。
【问题讨论】: