I am working on laravel passport authentication. My laravel version is 6.0 and passport version is 8.0
User.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\Hash;
use Illuminate\Notifications\Notifiable;
use DB;
use Auth;
use Session;
use Laravel\Passport\HasApiTokens;
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use Notifiable, HasApiTokens, HasRoles;
protected $fillable = [
'id', 'name', 'email', 'password', 'phone', 'address_line_1',
'address_line_2', 'city', 'pincode', 'user_id',
];
protected $hidden = [
'password', 'remember_token',
];
protected $rememberTokenName = 'remember_token';
protected $casts = [
'email_verified_at' => 'datetime',
];
public function getAuthIdentifierName() {}
public function getAuthIdentifier(){}
public function setRememberToken($value){}
public function getRememberTokenName(){}
public function getAuthPassword() {
return $this->getAttribute('password');
}
public function getReminderEmail() {
return $this->getAttribute('email');
}
public function getRememberToken() {
return $this->getAttribute('remember_token');
}
}
config/app.php
Laravel\Passport\PassportServiceProvider::class,
authServiceProvider.php
use Laravel\Passport\Passport;
use Carbon\Carbon;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Passport::routes();
Passport::tokensExpireIn(Carbon::now()->addDays(1));
Passport::refreshTokensExpireIn(Carbon::now()->addDays(10));
}
config/auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
],
AuthAPIController
public function signup(Request $request)
{
$request->validate([
'name' => 'required|string',
'email' => 'required|string|email|unique:users',
'password' => 'required|string|confirmed'
]);
$user = new User([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password)
]);
$user->save();
return response()->json([
'message' => 'Successfully created user!'
], 201);
}
/**
* Login user and create token
*
* @param [string] email
* @param [string] password
* @param [boolean] remember_me
* @return [string] access_token
* @return [string] token_type
* @return [string] expires_at
*/
public function login(Request $request)
{
$request->validate([
'email' => 'required|string|email',
'password' => 'required|string',
'remember_me' => 'boolean'
]);
$credentials = request(['email', 'password']);
if(!Auth::attempt($credentials))
return response()->json([
'message' => 'Unauthorized'
], 401);
$user = $request->user();
$tokenResult = $user->createToken('Personal Access Token');
$token = $tokenResult->token;
if ($request->remember_me)
$token->expires_at = Carbon::now()->addWeeks(1);
$token->save();
return response()->json([
'access_token' => $tokenResult->accessToken,
'token_type' => 'Bearer',
'expires_at' => Carbon::parse(
$tokenResult->token->expires_at
)->toDateTimeString()
]);
}
Api.php
Route::group([
'prefix' => 'auth'
], function () {
Route::post('login', 'Auth\AuthAPIController@login');
Route::post('sign-up', 'Auth\AuthAPIController@signup');
Route::group([
'middleware' => 'auth:api', 'cors', 'json.response'
], function() {
Route::get('/all-slider-images', 'HomeController@getSliderImages');
Route::get('/user', 'Auth\AuthAPIController@user');
});
});
HomeController.php
public function getSliderImages(){
try{
$images = SliderImage::where("deleted", 0)->get();
return response()->json(["status"=>200, "data"=> $images]);
}catch(Extension $e){
return response()->json(["status"=>500, "data"=> "System Error! Please try again!"]);
}
}
This is my log file
[2020-12-18 12:11:20] local.ERROR: SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from `users` where `` = 28 limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from `users` where `` = 28 limit 1) at C:\\xampp\\htdocs\\pressbell\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php:665)
[stacktrace]
#0 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Connection.php(625): Illuminate\Database\Connection->runQueryCallback('select * from ...', Array, Object(Closure)) #1 C:\\xampp\\htdocs\\pressbell\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php(334): Illuminate\\Database\\Connection->run('select * from
...', Array, Object(Closure))
#2 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(2140): Illuminate\Database\Connection->select('select * from `...', Array, true)
#3 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(2128): Illuminate\Database\Query\Builder->runSelect()
#4 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(2572): Illuminate\Database\Query\Builder->Illuminate\Database\Query\{closure}()
#5 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(2129): Illuminate\Database\Query\Builder->onceWithColumns(Array, Object(Closure))
#6 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Builder.php(521): Illuminate\Database\Query\Builder->get(Array)
#7 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Builder.php(505): Illuminate\Database\Eloquent\Builder->getModels(Array)
#8 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Database\Concerns\BuildsQueries.php(143): Illuminate\Database\Eloquent\Builder->get(Array)
#9 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Auth\EloquentUserProvider.php(52): Illuminate\Database\Eloquent\Builder->first()
#10 C:\xampp\htdocs\pressbell\vendor\laravel\passport\src\Guards\TokenGuard.php(139): Illuminate\Auth\EloquentUserProvider->retrieveById('28')
#11 C:\xampp\htdocs\pressbell\vendor\laravel\passport\src\Guards\TokenGuard.php(94): Laravel\Passport\Guards\TokenGuard->authenticateViaBearerToken(Object(Illuminate\Http\Request))
#12 C:\xampp\htdocs\pressbell\vendor\laravel\passport\src\PassportServiceProvider.php(277): Laravel\Passport\Guards\TokenGuard->user(Object(Illuminate\Http\Request))
#13 [internal function]: Laravel\Passport\PassportServiceProvider->Laravel\Passport\{closure}(Object(Illuminate\Http\Request), NULL)
#14 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Auth\RequestGuard.php(58): call_user_func(Object(Closure), Object(Illuminate\Http\Request), NULL)
#15 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Auth\GuardHelpers.php(60): Illuminate\Auth\RequestGuard->user()
#16 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Auth\Middleware\Authenticate.php(62): Illuminate\Auth\RequestGuard->check()
#17 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Auth\Middleware\Authenticate.php(41): Illuminate\Auth\Middleware\Authenticate->authenticate(Object(Illuminate\Http\Request), Array)
#18 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Auth\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure), 'api')
#19 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#20 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Routing\Router.php(682): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#21 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Routing\Router.php(657): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#22 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Routing\Router.php(623): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#23 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Routing\Router.php(612): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#24 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(176): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#25 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(130): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#26 C:\xampp\htdocs\pressbell\app\Http\Middleware\Cors.php(18): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#27 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): App\Http\Middleware\Cors->handle(Object(Illuminate\Http\Request), Object(Closure))
#28 C:\xampp\htdocs\pressbell\app\Http\Middleware\ForceJsonResponse.php(19): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#29 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): App\Http\Middleware\ForceJsonResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#30 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#31 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#32 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#33 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#34 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#35 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#36 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php(62): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#37 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#38 C:\xampp\htdocs\pressbell\vendor\fideloper\proxy\src\TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#39 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#40 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#41 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(151): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#42 C:\xampp\htdocs\pressbell\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#43 C:\xampp\htdocs\pressbell\public\index.php(55): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#44 C:\xampp\htdocs\pressbell\server.php(21): require_once('C:\\xampp\\htdocs...')
#45 {main}
But i get this error,
"message": "SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from
users
where `` = 28 limit 1)", "exception": "Illuminate\Database\QueryException",
Remove all these overrides from App\User.php
. It is not required unless you're using anything different from the defaults. Also you're not returning anything in these functions.
public function getAuthIdentifierName() {}
public function getAuthIdentifier(){}
public function setRememberToken($value){}
public function getRememberTokenName(){}