Я использую Yii2-advanced-app (2.0.15), и мне нужно выполнить вход в систему с OTP.
С номером ячейки и паролем все правильно и cookie корректно, но когда я использую opt, для cookie не создается никакого значения.
Мой код Ajax:
$("#m-sendCode__form-submit").click(function() {
$(this).attr('disabled','true');
let mobile = $('#mobile').val();
let csrfToken = $('meta[name="csrf-token"]').attr("content");
let rememberMe = $("#remember2").prop('checked');
// console.log(rememberMe);
$.ajax({
url: '/loginbysms',
method: 'POST',
data: {
_csrfFrontend: csrfToken,
phone: phone,
rememberMe: rememberMe
},
timeout: 6000
})
.done(function(data) {
let response = JSON.parse(data);
// console.log(data);
if (response.sent === 1){
$.ajax({
url: '/loginbysms',
method: 'POST',
data: {
_csrfFrontend: csrfToken,
verify: verify,
// rememberMe: rememberMe
},
})
.done(function(data) {
let s = JSON.parse(data);
if (s.status === 1){
window.location.href = '/';
}
});
}
})
.fail(function(error)){
console.log(error);
});
});
И мой контроллер:
public function actionLoginbysms()
{
$dataAjax = Yii::$app->request->post();
$session = Yii::$app->session;
if(isset($dataAjax)) {
if (isset($dataAjax['phone']) && !empty($dataAjax['phone'])) {
$phone = $dataAjax['phone'];
$user = User::findByPhone2($phone);
$sendSMS = new SendSMS();
if ($sendSMS->SendSMS($user->user_otp, $phone)) {
echo json_encode(['sent' => 1]);
exit;
} else {
echo json_encode(['sent' => 0]);
exit;
}
}
if(isset($dataAjax['verify]) && !empty($dataAjax['verfy'])){
$authorizedUser = User::findByOtp($session-
>get('user_phone'), $dataAjax['verify']);
if (isset($authorizedUser) && !empty($authorizedUser)) {
Yii::$app->user->login($authorizedUser, 3600 * 24 *
30)
echo json_encode(['status' => 1]);
exit;
}
}
}
}
Когда все верно и код отправлен пользователем правильно, пользователь правильно входит на домашнюю страницу, но значение cookie не сохраняется.
Пожалуйста, скажите мне ошибку.