Auth :: пользователь ();не возвращает пользователей, используя паспорт - PullRequest
2 голосов
/ 03 июля 2019

У меня ситуация с возвращением пользователей из БД. В моем контроллере я пытаюсь это, как показано ниже:

ОБНОВЛЕНИЕ:

ПРИМЕЧАНИЕ: за явное недопонимание. На самом деле я вошел как пользователь. Нет проблем с этой частью. Но похоже, что auth :: не понимает этого, и когда я пытаюсь получить пользователей. он перенаправляет меня на конечную точку входа в систему ...

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;

class UsersController extends Controller
{
    public function getUser(){

        $users = Auth::user();
        dd($users);
    }
}

А про маршрут API:

Route::group(['middleware' => 'auth:api'], function() {

    Route::post("logout", "Api\AuthController@logout");

    /* User */
    Route::get('/user', 'Api\UsersController@getUser');

});


Route::group(["prefix" => "v1"], function(){

    /* Auth */
    Route::post("login", "Api\AuthController@login")->name("login");
    Route::post("register", "Api\AuthController@register");

});

Вот эта вещь. Если я использую свой маршрут UserController вне промежуточного программного обеспечения: api, тогда конечная точка возвращает ноль. И если использовать его в промежуточном программном обеспечении, он перенаправляет меня на конечную точку моего логина. Из-за "->name('login')"

В конце концов, я не могу вернуть пользователей. Кроме того, именно так выглядит config / auth.

'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],

Кстати, раньше спрашивал. Я пытался изменить веб-охранник на API, но ничего не изменилось.

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],

Кто-нибудь лучше понимает эту ситуацию? Как я могу вернуть пользователей с помощью паспорта? Я что-то здесь упускаю?

Ответы [ 2 ]

1 голос
/ 03 июля 2019

Если вы используете Laravel Passport. Давайте прочитаем и сделаем ваш шаг таким же в документе: https://laravel.com/docs/5.8/passport

Из вашего запроса API необходимо передать access_token бэкенду.

Надеюсь, что вы можете решить эту проблему!

1 голос
/ 03 июля 2019

Видимо, проблема в заголовке запроса. Только вошедший в систему пользователь может вызвать /api/user конечную точку с access_token в заголовке запроса.

В заголовке запроса будет указана эта пара

Authorization: Bearer eyJ0eXAiOiJKV1..........

Ничего не делать в части Laravel, так как она работает, как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...