#ajax #laravel #laravel-passport #laravel-api
#ajax #laravel #laravel-passport #laravel-api
Вопрос:
У меня есть новое приложение laravel с аутентификацией по паспорту. мой код для входа в систему отлично работает в моем приложении insomnia.
Вход:
public function login(Request $request)
{
if(Auth::attempt(['username' => request('username'), 'password' => request('password')]))
{
$user = Auth::user();
$success['token'] = $user->createToken('AppName')-> accessToken;
return response()->json(['authstat'=>'Authorized','user'=>Auth::user()->id,'access_token'=>$success]);
}
else
{
return response()->json(['authstat'=>'Unauthorized']);
}
}
Тест на бессонницу
http://api-auth.test/api/auth/login
//json request
{
"username":"wen",
"password":"12345678"
}
но когда я попробовал это в своем браузере, он всегда возвращается Unauthorized
, даже если я передаю правильное имя пользователя и пароль. вот мой ajax-запрос от интерфейса.
<script type="text/javascript">
$("#loginfrm").on("submit", function(e){
event.preventDefault();
var username = $("#username").val();
var password = $("#password").val();
$.ajax({
type: "POST",
url: "http://api-auth.test/api/auth/login",
contentType: "application/json",
Accept: "application/json",
dataType: 'json',
data:{
"_token": "{{ csrf_token() }}",
"username": username,
"password": password
},
complete: function (data) {
console.log(data.responseJSON["authstat"]);
}
});
});
</script>
Есть предложения? Спасибо.
Комментарии:
1. вы проверили, получают ли ваши данные контроллер i или нет
2. @KamleshPaul Я попробовал $uname = $request-> all(‘username’); и он возвращает null.
3. нет, я говорю
dd($request->all())
, вы пробовали.?4. @KamleshPaul можете ли вы показать мне, как обрабатывать ajax-запрос в контроллере laravel. Я думаю, что это проблема, мое имя пользователя и пароль возвращают null в контроллере.
5. удалите
contentType: "application/json", Accept: "application/json", dataType: 'json',
их и попробуйте
Ответ №1:
Ваш метод входа ожидает request('username')
ввода, но вместо этого отправляется ваш $.ajax email
.
Комментарии:
1. Мой плохой, я уже изменил его и отредактировал вопрос, но все еще несанкционированный.