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

时间:2019-02-12 11:16:05

标签: laravel laravel-5 multi-tenant 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,
        ]);
    }

这是我的路线文件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');
    });
});

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

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

3 个答案:

答案 0 :(得分:3)

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

您需要创建一个personal access token

php artisan passport:client --personal

答案 1 :(得分:1)

如果您从未运行过name status update version plugin name inactive none 5.2.2 plugin name active none 10.4.0 plugin name inactive none 5.65 plugin name inactive none 9.4.8 ,并且经常在每次您放下表格时发生。

简单运行php artisan passport:install,而不必使用php artisan passport:install标志

答案 2 :(得分:0)

尝试这个php artisan passport:install