Search code examples
phplaravellaravel-passportlaravel-validationlaravel-api

Laravel 7 Passport Api Validation


I created a Laravel login passport API but when email is provided "null" or password is null, it's not showing validation required error. It's returning html of something?

Here is my code of controller:

<?php

namespace App\Http\Controllers\Api;
use\App\User;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;



class AuthController extends Controller
{
   public function login(Request $request)
   {
      $loginData= $request->validate([
           'email'=>'required',
           'password'=>'required',
       ]);
      
       if(!auth()->attempt($loginData))
       {
           return response()->json(['message'=>'Invalid credientails']);
       }
       $accessToken =auth()->user()->createToken('authToken')->accessToken;
       return response()->json(['user'=>auth()->user(),'access_Token'=>$accessToken]); 
   }
}

Solution

  • Try this

    Also please make sure you include the class validator in controller-> use Validator;

    $validator = Validator::make($request->all(), [ 
           'email'=>'required',
           'password'=>'required',
        ]);
    
        if ($validator->fails())
        { 
            $message = $validator->errors()->first();
            return response()->json(['statusCode'=>200,'success'=>false,'message'=>$message], 200);            
        }