https://laravel.com/docs/5.7/passport
https://tutsforweb.com/laravel-passport-create-rest-api-with-authentication/
laravel 5.5
composer require laravel/passport=~4.0
1. composer require laravel/passport
2. php artisan migrate
3. php artisan passport:install
1. User.php
use Laravel\Passport\HasApiTokens;
class User{
use HasApiTokens, ...
}
2. AuthServiceProvider.php
use Laravel\Passport\Passport;
boot(){
Passport::routes();
}
3. config\auth.php
'api' => [
'driver' => 'passport',
'provider' => 'users'
]
Route::post('login', 'PassportController@login');
Route::post('register', 'PassportController@register');
Route::middleware('auth:api')->get('user', 'PassportController@details');
public function register(Request $request)
{
$this->validate($request, [
'name' => 'required|min:3',
'email' => 'required|email|unique:users',
'password' => 'required|min:6',
]);
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password)
]);
$token = $user->createToken('TutsForWeb')->accessToken;
return response()->json(['token' => $token], 200);
}
public function login(Request $request)
{
$credentials = [
'email' => $request->email,
'password' => $request->password
];
if (auth()->attempt($credentials)) {
$token = auth()->user()->createToken('TutsForWeb')->accessToken;
return response()->json(['token' => $token], 200);
} else {
return response()->json(['error' => 'UnAuthorised'], 401);
}
}
public function details()
{
return response()->json(['user' => auth()->user()], 200);
}
public function logout(Request $request){
$logged_out = false;
if (auth()->check())
$logged_out = auth()->user()->token()->revoke();
$data = ['logged_out' => $logged_out];
return response()->json($data, 200);
}