Дисциплины - Серверные технологии разработки

Разработка бэкенда backend API - Авторизация API с помощью Sanctum - Контроллер авторизации

Сперва необходимо создать контроллер авторизации. Сделать это можно с помощью 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());
    }

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
80422 БГУИР
10421-10422 ИИТ БГУИР
10423 БГУИР
20421 БГУИР
30421 БГУИР
30423 БГУИР
Вопросы