I'm using laravel 5.4 to develop an api
When trying to login using API Controller
Route::post('/login','Auth\ApiLoginController@login')
class ApiLoginController extends Controller
{
public function login(Request $request)
{
$this->validate($request,[
'email' => 'required|email',
'password' => 'required|min:6',
]);
/*return response([
'email' =>$request->email,
'password'=> $request->password
],200);*/
if(Auth::guard('api')->attempt(['email'=> $request->email, 'password'=> $request->password], $request->remember)){
//return redirect()->intended(route('admin.dashboard'));
return response([
'data' =>"login successfully"
], 200);
}
//return redirect()->back()->withInput($request->only('email','remember'));
return response([
'data' =>"login failed"
],200);
}
}
It gives me following error:
{FatalThrowableError Call to undefined method Illuminate\Auth\TokenGuard::attempt()}
In config/auth.php
,
change:
'api' => [
'driver' => 'token',
],
To:
'api' => [
'driver' => 'session',
],
Because Auth::guard
data is stored in the session