修改 jetstream laravel/fortify 登入邏輯

liaosp發表於2021-07-08

論壇朋友問 Laravel腳手架jetstream:livewire 登陸邏輯在哪裡修改? 早上沒啥事,看了下程式碼,為了讓 Jetsteam使用者 比較容易搜尋到,把回答改成博文

一般是有觸發Event 事件,直接新增對應的事件處理就好了。

或者像laravel-admin/dcat-admin config有直接配置的檔案

fortify早就為你想好了,需要修改登入邏輯, 它是通過配置的檔案繼承修改的

file

在你的配置檔案中新增配置

config('fortify.pipelines.login')
[
     config('fortify.limiters.login') ? null : EnsureLoginIsNotThrottled::class,
     RedirectIfTwoFactorAuthenticatable::class,
     AttemptToAuthenticate::class,
     PrepareAuthenticatedSession::class,
]

格式如上

注意AttemptToAuthenticate::class 自己在自己的目錄建立的,並且繼承它(extends)

覆蓋

    /**
     * Handle the incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  callable  $next
     * @return mixed
     */
    public function handle($request, $next)
    {
        if (Fortify::$authenticateUsingCallback) {
            return $this->handleUsingCustomCallback($request, $next);
        }

        if ($this->guard->attempt(
            $request->only(Fortify::username(), 'password'),
            $request->filled('remember'))
        ) {

            return $next($request);
        }

        $this->throwFailedAuthenticationException($request);
    }

在上面的方法了就可以 獲取 $this->guard ,你可以寫自己的業務了

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章