laravel auth с ответом API другой базы данных - PullRequest
0 голосов
/ 06 февраля 2019

У меня такой же случай с пользовательской аутентификацией laravel на основе ответного вызова API нужен ответ, пожалуйста, поскольку в этом посте нет

1 Ответ

0 голосов
/ 07 февраля 2019

Сначала установите паспорт Laravel.

После этого создайте пользовательский контроллер и проложите к нему маршрут API без промежуточного программного обеспечения.

public function login(Request $request)
    {
        $details = $request->only('email', 'password');
        if (Auth::attempt($details)) {
            $user = Auth::user();
            if ($user->verified) {
                $user->token = $user->createToken('App')->accessToken;
                return response()->json([
                    'user' => $user
                ], $this->successful_response_code);
            }
            return response()->json([
                'error' => 'not_verified'
            ], $this->failure_response_code);
        }
        return response()->json([
            'error' => 'details_incorrect'
        ], $this->unauthorized_response_code);
    }

Удалите проверенную пользователем проверку сверху (на мобильном телефоне)код сложнее вводить.)

Итак, теперь пользователь отправляет на этот маршрут имя пользователя и пароль, а взамен получает свой пользовательский объект с токеном доступа, который можно использовать на любых защищенных вами маршрутах.с промежуточным программным обеспечением auth:api.

Просто отправляйте запросы к нужному маршруту, используя маркер пользователя в качестве заголовка Authorization: Bearer ******(token)

Вот пример маршрута.


Route::namespace('API\V1')->group(function () {
    Route::namespace('Auth')->group(function () {
        Route::post('login', 'LoginController@login');
        Route::post('register', 'RegisterController@register');
        Route::post('verify', 'VerificationController@verify');
    });
    Route::middleware('auth:api')->group(function () {
        Route::namespace('User')->group(function () {
            Route::get('users', 'UserController@index');
        });
        Route::namespace('Conversation')->group(function () {
            Route::get('conversations', 'ConversationController@index');
            Route::post('conversations', 'ConversationController@store');
            Route::patch('conversations/{conversation}', 'ConversationController@update')->middleware('can:update,conversation');
        });
    });
});

Вот репозиторий, который вы можете просмотреть https://github.com/michaelmano/laravel-login/

Что касается внешнего интерфейса, как только вы отправили токен пользователя из запроса, он действительно зависит от того, какой язык / инфраструктуру вы используете.

...