如何在 Codeigniter 4 中更改状态代码在 ReactJS 中推送页面
how to change the status code in Codeigniter 4 To push pages in ReactJS
我使用 CI4 作为后端,React Js 作为前端,我正在进行身份验证,所以在身份验证之后,如果凭据正确,我想将用户推送到其他页面,如果不正确,则只需刷新相同的页面
第
页
我知道如何更改页面,但现在的问题是即使凭据不正确,此代码也会为所有内容提供状态 200,所以我应该怎么做才能使状态从真变为假如果响应为真,则使用推送到另一个页面
public function loginAuth()
{
$session = session();
$userModel = new UserModel();
$email = $this->request->getVar('email');
$password = $this->request->getVar('password');
$data = $userModel->where('email', $email)->first();
if($data){
$pass = $data['password'];
$authenticatePassword = password_verify($password, $pass);
if($authenticatePassword){
$ses_data = [
'id' => $data['id'],
'name' => $data['name'],
'email' => $data['email'],
'isLoggedIn' => TRUE
];
$session->set($ses_data);
return redirect()->to('/');
}else{
$session->setFlashdata('msg', 'Password is incorrect.');
// return redirect()->to('/signin');
}
}else{
$session->setFlashdata('msg', 'Email does not exist.');
// return redirect()->to('/signin');
}
}
这是代码,现在我希望在成功后它应该推送到不同的页面,但问题是它满足所有条件,如果所有条件都满足,我将无能为力 statusCode=200
我找到了一种方法,首先只需使用 react-router 推送到另一个页面,如果您的验证函数为真,然后将其他条件的状态更改为
$model = new UserModel();
$user = $model->save($this->request->getPost());
// Respond with 201 status code
return $$this->fail($errors, 400);
而且我认为它对你有用
我使用 CI4 作为后端,React Js 作为前端,我正在进行身份验证,所以在身份验证之后,如果凭据正确,我想将用户推送到其他页面,如果不正确,则只需刷新相同的页面 第
页我知道如何更改页面,但现在的问题是即使凭据不正确,此代码也会为所有内容提供状态 200,所以我应该怎么做才能使状态从真变为假如果响应为真,则使用推送到另一个页面
public function loginAuth()
{
$session = session();
$userModel = new UserModel();
$email = $this->request->getVar('email');
$password = $this->request->getVar('password');
$data = $userModel->where('email', $email)->first();
if($data){
$pass = $data['password'];
$authenticatePassword = password_verify($password, $pass);
if($authenticatePassword){
$ses_data = [
'id' => $data['id'],
'name' => $data['name'],
'email' => $data['email'],
'isLoggedIn' => TRUE
];
$session->set($ses_data);
return redirect()->to('/');
}else{
$session->setFlashdata('msg', 'Password is incorrect.');
// return redirect()->to('/signin');
}
}else{
$session->setFlashdata('msg', 'Email does not exist.');
// return redirect()->to('/signin');
}
}
这是代码,现在我希望在成功后它应该推送到不同的页面,但问题是它满足所有条件,如果所有条件都满足,我将无能为力 statusCode=200
我找到了一种方法,首先只需使用 react-router 推送到另一个页面,如果您的验证函数为真,然后将其他条件的状态更改为
$model = new UserModel();
$user = $model->save($this->request->getPost());
// Respond with 201 status code
return $$this->fail($errors, 400);
而且我认为它对你有用