【问题标题】:Laravel 5.3 - Session store not set on requestLaravel 5.3 - 未按要求设置会话存储
【发布时间】:2017-03-13 05:48:12
【问题描述】:

我在我的 Laravel 应用程序中添加了一个电子邮件验证系统。我已经使用了“jrean's”包。

现在我想覆盖 VerifiesUsers 特征中的 getVerification() 函数。为此,我在 RegisterController 中添加了一个同名的函数。

public function getVerification(Request $request, $token)

{    

 $this->validateRequest($request);

 try {
    UserVerification::process($request->input('email'), $token, $this->userTable());
 } catch (UserNotFoundException $e) {
    return redirect($this->redirectIfVerificationFails());
 } catch (UserIsVerifiedException $e) {
    return redirect($this->redirectIfVerified());
 } catch (TokenMismatchException $e) {
    return redirect($this->redirectIfVerificationFails());
 }

 $request->session()->flash('message', 'Email address has been successfully verified');
 return redirect($this->redirectAfterVerification());
}

但是,当根据验证调用调用我的函数时,我收到错误“会话存储未按请求设置”。错误。我不确定它到底是什么意思以及如何解决它。

【问题讨论】:

    标签: laravel session laravel-5.3


    【解决方案1】:

    发生这种情况的原因是包中声明的路由没有放在web 中间件中。

    要解决这个问题,您可以将该包中的路由添加到您的routes/web.php。路线是:

    Route::get('email-verification/error', 'Auth\RegisterController@getVerificationError')->name('email-verification.error');
    Route::get('email-verification/check/{token}', 'Auth\RegisterController@getVerification')->name('email-verification.check');
    

    您只需确保您在config/app.php 中的Jrean\UserVerification\UserVerificationServiceProvider::class, 行高于App 服务提供商(但低于Illuminate 服务提供商)。

    希望这会有所帮助!

    【讨论】:

    • 谢谢伙计!你肯定让我的另一个周末免于被搞砸。从来没有想过这个。你绝对值得一品脱啤酒。
    猜你喜欢
    • 2016-03-30
    • 2023-03-22
    • 2020-08-24
    • 2017-09-30
    • 2021-05-08
    • 2016-08-30
    • 2020-11-28
    • 2018-04-12
    • 2017-12-11
    相关资源
    最近更新 更多