簡體   English   中英

Lumen 5.8 Auth 嘗試不存在

[英]Lumen 5.8 Auth attempt does not exist

我是 Lumen 的新手,正在構建 RESTful API,但由於 Auth::attempt 不起作用,我現在卡住了幾個小時。 我一直在尋找任何答案,但所有結果都只是 Laravel 而不是 Lumen。

所以我創建了一個 AuthController 和 login 方法來驗證用戶,但出現錯誤。

public function login(Request $request)
{
        $this->validate($request, [
            'email' => 'required|string|email',
            'password' => 'required|string',
        ]);

        $credentials = $request->only('email', 'password');
        if( !Auth::attempt($credentials) ) {
            return response()->json([
                'message' => 'Unauthorized'
            ], 401);
        }
}

這是錯誤:“方法 Illuminate\\Auth\\RequestGuard::attempt 不存在。”

任何人都可以幫助我嗎? 謝謝!

您可以嘗試以下操作:

   if (!Auth::guard('web')->attempt($credentials) {
        return response()->json([
            'message' => 'Unauthorized'
        ], 401);
    }

該方法僅適用於使用 Web 中間件的路由,您能檢查一下嗎? 您可能需要編輯您的config/auth文件。

流明護照設置:

composer require dusterio/lumen-passport

在 bootstrap/app.php 中啟用應用程序和身份驗證服務提供者

在引導文件中添加以下服務提供者

$app->register(Laravel\Passport\PassportServiceProvider::class);
$app->register(Dusterio\LumenPassport\PassportServiceProvider::class);

將 /app/Providers/AuthServiceProvider 中 auth 服務提供者的引導函數中的內容替換為:

LumenPassport::routes($this->app->router);

運行 php artisan migrate

運行 php 工匠護照:安裝

然后按照這個https://laravel.com/docs/5.8/passport#issuing-access-tokens

請記住,流明版本沒有用於授權訪問的視圖或路由,您必須在客戶端上單獨構建它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM