Laravel問題從電子郵件驗證傳遞錯誤消息 (Laravel problem to pass error message from email verification)


問題描述

Laravel問題從電子郵件驗證傳遞錯誤消息 (Laravel problem to pass error message from email verification)

想求助,因為不知道怎麼告訴用戶激活鏈接不正確。

我覆蓋了verify方法,現在激活成功後,用戶接收信息。但是當鏈接無效時得到 403 | 無效的簽名。

我的想法已經用完了,我想將消息的形式更改為登錄頁面上顯示的引導警報

protected $redirectTo = '/login';


    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this‑>middleware('signed')‑>only('verify');
        $this‑>middleware('throttle:6,1')‑>only('verify', 'resend');
    }

    public function verify(Request $request)
    {

        $user = User::find($request‑>route('id'));

        if (!hash_equals((string) $request‑>route('hash'), sha1($user‑>getEmailForVerification()))) {
            throw new AuthorizationException;
        }


        if ($user‑>markEmailAsVerified())
            event(new Verified($user));

        return redirect($this‑>redirectPath())‑>with('verified', true);
    }

我嘗試了try catch,但它沒用

有人知道如何實現嗎?我正在使用 Laravel 8


參考解法

方法 1:

you can just check if the signature is valid or not then redirect or add a payload.

if (!$request‑>hasValidSignature()) {
       // do stuff here (return view, redirect etc)
   }

方法 2:

Maybe you could try changing the throw new AuthorizationException; inside the verify method to add your own logic.

(by Ridster32Mua RachmannProfessor)

參考文件

  1. Laravel problem to pass error message from email verification (CC BY‑SA 2.5/3.0/4.0)

#laravel-8 #Laravel #PHP






相關問題

在 Laravel 的表中計算 user_id (Count user_id in a table in Laravel)

如何通過模型顯示表中的數據,自定義行除外 (How to show data from table via Model except a custom row)

如何在 Laravel 的模型中為所有貨幣字段(十進制屬性)加上逗號 (How to put comma to all money fields (decimal attributes) in a model in Laravel)

Laravel:8.x 目標類 [ArticlesController] 不存在 (Laravel:8.x Target class [ArticlesController] does not exist)

如何根據 laravel 中的一列獲取最新記錄? (How to get latest record based on one column in laravel?)

訂閱者中間件路由允許公眾查看所有受限頁面 (Subscriber middleware route allowing public to view all restricted pages)

更改徽標默認通知電子郵件 laravel 8 (change logo default notification email laravel 8)

Laravel 8 - 如果用戶有權調用路由,請簽入控制器 (Laravel 8 - Check in Controller if user has permission to call route)

laravel 微風 Multi Auth - 具有兩個不同註冊的 Admin Guard (laravel breeze Multi Auth - Admin Guard with two diffirent registration)

找不到組件的類或視圖 (Unable to locate a class or view for component)

Laravel 8 數據庫不會使用 HTML 表單更新 (Laravel 8 database won't update using HTML form)

Laravel問題從電子郵件驗證傳遞錯誤消息 (Laravel problem to pass error message from email verification)







留言討論