Здравствуйте!
Делаю собственную регистрацию и авторизацию через AJAX но после регистрации не происходит авторизация. Ошибок не выдает но и не авторизирует. Что я делаю не так? Расскажите пожалуйста как проще решить эту проблему.
Маршруты api.php
Route::group(['namespace' => 'Auth'], function() {
Route::post('/register', 'RegisterController@ajaxRegister')->name('register');
Route::post('/login', 'LoginController@ajaxLogin')->name('login');
});
Метод в который летят все данные из формы регистрации:
protected function ajaxRegister(Request $request)
{
$validator = $this->validator($request->all());
if(!$validator->fails()){
if($this->create($request->all())){
if(Auth::attempt([
'login' => $request->all()['login'],
'password' => $request->all()['password'],
], true)){
return response()->json([
'code' => 'success',
'url' => route('profile'),
'message' => config('invest.register.success')
]);
}
}
return response()->json([
'code' => 'danger',
'message' => config('invest.register.error')
]);
}
foreach($validator->errors()->all() as $mess){
$this->messError .= $mess.'<br>';
}
return response()->json([
'code' => 'danger',
'message' => $this->messError
]);
}
JS обработка и сам запрос AJAX:
$("form.registerForm").on("submit", function(e){
e.preventDefault();
var resultData = validationRegister(e);
if(typeof resultData === 'object'){
$.ajax({
url: e.target.action,
type: e.target.method,
dataType: 'json',
data: resultData,
headers: {
'X-CSRF-Token': e.target._token.value
},
beforeSend: function(){
$("#resultRegister").html("<p style='text-align:center; color:#bb0000;'>Загрузка...</p>");
},
success: function (data) {
$("#resultRegister").html('<div class="alert alert-'+data.code+'">'+data.message+'</div>');
console.log(data);
if(data.code=='success'){
location.replace(data.url);
}
},
error: function (msg) {
$("#resultRegister").html('<div class="alert alert-danger">'+msg.responseJSON.message+'</div>');
console.log(msg);
}
});
}
});