Auth :: user();不会使用护照返回用户

时间:2019-07-03 02:03:38

标签: laravel laravel-5

我有从数据库返回用户的情况。在我的控制器中,我尝试如下操作:

已更新

注意:造成明显的误解。实际上,我以用户身份登录。那部分没问题。但是它看起来像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");

});

这是东西。如果我在Middleware:api之外使用UserController路由,则端点为null。如果在中间件中使用它,它将把我重定向到我登录名的端点。由于"->name('login')"

最后,我无法返回用户。另外,这就是config / auth的样子。

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

顺便问一下。我试图将Guard的网站更改为api,但没有任何更改。

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

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

有人对这种情况有更好的了解吗?如何使用护照回国?我在这里想念东西吗?

2 个答案:

答案 0 :(得分:1)

显然,问题出在请求标头上。只有登录的用户才能使用请求标头中的/api/user来调用access_token端点。

请求标头将具有这对

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

在laravel部分不做任何事情,因为它按预期工作。

答案 1 :(得分:1)

如果您正在使用Laravel Passport。让我们在文件https://laravel.com/docs/5.8/passport

中进行阅读并使其相同

从您的API请求中,需要将access_token传递给后端。

希望您可以解决该问题!