在多租户(hyn 包)laravel 中通过 API(使用护照)登录

Ris*_*rma 3 multi-tenant laravel laravel-5 laravel-passport

这是错误:

RuntimeException: 未找到个人访问客户端。请创建一个。在第 94 行的文件 /var/www/html/pharmacy/vendor/laravel/passport/src/ClientRepository.php 中

这是我的登录功能:

 public function login(Request $request)
    {
        $request->validate([
            'email' => 'required|string|email',
            'password' => 'required|string',
            'remember_me' => 'boolean'
        ]);
        $credentials = request(['email', 'password']);
        if (!Auth::attempt($credentials))
            return response()->json([
                'message' => 'Unauthorized'
            ], 401);
        $user = $request->user();
        $tokenResult = $user->createToken('Personal Access Token');
        $token = $tokenResult->token;
        if ($request->remember_me)
            $token->expires_at = Carbon::now()->addWeeks(1);
        $token->save();
        return response()->json([
            'access_token' => $tokenResult->accessToken,
            'token_type' => 'Bearer',
            'expires_at' => Carbon::parse(
                $tokenResult->token->expires_at
            )->toDateTimeString(),
            'name' => Auth::user()->name,
            'email' => Auth::user()->email,
        ]);
    }
Run Code Online (Sandbox Code Playgroud)

这是我的路线文件api.php

Route::group([
    'prefix' => 'auth'
], function () {
    Route::post('login', 'User\ParticipantAuth@login');


    Route::group([
        'middleware' => 'auth:api'
    ], function() {
        Route::get('logout', 'User\ParticipantAuth@logout');
        Route::get('user', 'User\ParticipantAuth@user');
    });
});
Run Code Online (Sandbox Code Playgroud)

我只想在多租户中通过护照包 API 登录

我复制了由护照包创建的所有迁移database/migration,并将其放入database/migration/tenant保存其他迁移的文件夹中。

Ism*_*oev 9

在您的应用程序可以发布个人访问令牌之前,您需要创建一个个人访问客户端:

您需要创建个人访问令牌

php artisan passport:client --personal
Run Code Online (Sandbox Code Playgroud)