大家好,
我目前正在与后端的Frontend和Symfony PHP框架合作。现在,我试图通过邮政请求通过React登录后端。到目前为止,这一切都很好。我得到了204代码,然后登录。关于Postman,并带有相同的请求,我可以作为基于会话的身份验证的曲奇响应。关于php和卷发,我从后端得到了cookie的回应
卷发的响应看起来像这样:
{'Date': 'Sat, 08 Oct 2022 10:14:45 GMT', 'Server': 'Apache', 'Cache-Control': 'max-age=0, must-revalidate, private', 'Link': '<http://127.0.0.1:8000/api/docs.jsonld>; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"', 'X-Debug-Token': 'cca986', 'X-Debug-Token-Link': 'http://127.0.0.1:8000/_profiler/cca986', 'X-Robots-Tag': 'noindex', 'Expires': 'Sat, 08 Oct 2022 10:14:45 GMT', 'Content-Encoding': 'gzip', 'Vary': 'Accept-Encoding', 'Set-Cookie': 'PHPSESSID=2606e8ab1c7ded0d30bb61890f4a6ea0; path=/; secure; httponly; samesite=lax', 'Location': '/api/users/11', 'Keep-Alive': 'timeout=5, max=100', 'Connection': 'Keep-Alive'}
php代码:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://127.0.0.1:8000/login',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"email": "webmaster",
"password": "123456"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
),
));
$response = curl_exec($curl);
我不在卷发变体中使用"CURLOPT_HEADER => true
时,“ cookie和详细的响应将不再显示。
现在,我已经尝试了所有选项,以使cookie在标题中获得React和Axios,不幸的是,对于我来说,甚至不可能以某种方式从后端获得cookie或其他响应。这是我当前正在使用的代码。
let data = {email:"webmaster", password:"123456"}
let headers = {
headers: {'Content-Type': 'application/json'}
};
const axiosConfig = {
headers: {
'content-Type': 'application/json',
"Accept": "/",
"Cache-Control": "no-cache",
"Access-Control-Allow-Origin": "*",
// "Cookie": document.cookie
},
credentials: "same-origin"
};
axios.defaults.withCredentials = true;
const res = await axios.post('http://127.0.0.1:8000/login', data, axiosConfig)
.catch(response =>{
console.log(response.getAll());
})
不幸的是,我不知道我是否忘记了邮政请求中的任何内容,或者Axios不是最适合这种请求的。
我感到惊讶的是,在Postman和PHP中,没有问题可以得到cookie。不幸的是,我直到最近才开始使用ReactJ,并且在该领域几乎没有经验。
在周末我也尝试了Python,也没有问题。因此,我认为这是我的ReactJS代码的问题。
非常感谢您的帮助!
最好,基督徒