Сперва необходимо создать контроллер авторизации. Сделать это можно с помощью artisan-команды.
php artisan make:controller AuthController
Контроллер авторизации должен содержать следующие методы авторизации: register(), login(), logout(), profile().
Для реализации задач авторизации в Laravel имеется встроенный механизм - фасад Auth.
Данные пользователей можем хранить в таблице users.
Рассмотрим методы подробнее:
public function register(UserRequest $r) { $r['password'] = Hash::make($r->password); $user = User::create($r->all()); $token = $user->createToken('myapptoken')->plainTextToken; $answer = [ 'user' => $user, 'token' => $token ]; return response()->json($answer); }
Метод login()
public function login(Request $request){ abort_if(!$request->email, '401', 'email is empty'); abort_if(!$request->password, '401', 'password is empty'); $user = User::where('email', $request->email)->first(); if(!$user || !Hash::check($request->password, $user->password)){ return response()->json([ 'message' => 'bad credits' ]); } $token = $user->createToken('myapptoken')->plainTextToken; $answer = [ 'user' => $user, 'token' => $token ]; return response()->json($answer); }
Методы logout() и profile() соответственно:
public function logout(){ Auth::user()->tokens()->delete(); return response()->json([ 'message' => 'user logout' ]); } public function profile(){ return response()->json(Auth::user()); }
Практика