Почему мой laravel Passport Auth не работает в браузере?

#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. Мой плохой, я уже изменил его и отредактировал вопрос, но все еще несанкционированный.