Я новичок в ReactJS и Cakephp. Мне удалось написать некоторые API для извлечения / фильтрации сообщений из моей БД, но сейчас я борюсь с частью Аутентификация.
На самом деле я сделал регистрацию довольно легко, теперь я пытаюсьсделать форму входа (с помощью React). Я могу отправить имя пользователя и пароль в свой бэкэнд, но $ this-> Auth-> identifier () возвращает false.
Это то, что я уже проверил / сделал:
Длина столбца пароля БД 255 varchar
Пароль пользователя БДправильно хешируется после регистрации
Передать сущность пользователя с пользовательскими данными для метода identifier () в качестве параметра
$ this-> request-> input ('json_decode', true);верните правильно имя пользователя и пароль (пароль не хешируется)
Так что у меня есть некоторые сомнения:
- Я передаю данные пользователя в виде JSON через fetch (), но когда он достигает бэкэнда, это простой текст, так что мне нужно json_encode, чтобы данные, прежде чем identifier () смог обработать его? или Идентифицирует () хэширует ли мой пароль, когда он пытается найти пользователя / пароль внутри моей БД?
ReactJS
handleSubmit(e) {
e.preventDefault();
let myHeaders = new Headers();
// state structure
// this.state={username:'userName', password: '123asdqwe'};
let myInit = {
method: 'POST',
headers: myHeaders,
mode: 'cors',
body: JSON.stringify(this.state)
};
fetch('url/users/login', myInit)
.then(() => {console.log("done");});
}
CakePHP Функция входа в систему (базовая)
public function login()
{
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
$this->response->body(json_encode(array("user_id" => $this->Auth->user('id'))));
return $this->response;
} else {
$this->response->body(json_encode(array("error" => "error")));
return $this->response;
}
}
}
На самом деле я не знаю, как поступить, я не могу найти никаких примеров в Интернете, и документ не дает мне никакой подсказки.
Как я должен обрабатывать данные перед входом в систему?
Спасибо.