使用 Laravel 5.2 的 Authenticated() 方法
Using Laravel 5.2's Authenticated() Method
我正在使用 Laravel 5.2 的默认身份验证,并且在使用框架的 authenticated() 方法时遇到了一些问题。该方法对于 运行 代码在身份验证成功后但在加载任何后续页面之前很有用。认证成功会触发AuthController中的authenticated()方法,我定义如下:
protected function authenticated() {
session(['loggedIn' => 'show']);
return redirect('/home');
}
如我们所见,它可以用于设置主页首次加载时所需的会话变量(但不应在每次重新加载主页时重置)。
在我的例子中,我使用 loggedIn 在用户登录或注册后每个会话只显示一次欢迎 div。为此,我在主页上添加了以下 PHP:
function displayWelcome() {
if (session('loggedIn') == 'show') {
echo '<div class="container" name="loggedIn" id="loggedIn">';
session(['loggedIn' => 'hide']);
} else {
echo '<div class="container" name="loggedIn" id="loggedIn" hidden>';
}
}
目前,此代码在现有用户登录时工作正常。
但是,它并不完全适用于用户注册。它确实成功重定向到主页,但欢迎 div 根本没有出现。奇怪的是,当我 echo session('loggedIn') before 调用 displayWelcome() 函数时,它在注册后输出 "hide" (并正确显示 "show"登录后)。我看不出它是如何获取值 "hide" 以及为什么它没有正确打开 div.
有什么提示吗?
您可以从此处找到的 RegistersUsers 特征覆盖 register
方法:
\Illuminate\Foundation\Auth\RegistersUsers
在您的 Auth 控制器中使用以下方法并在其中调用您的自定义代码:
/**
* Handle a registration request for the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function register(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
Auth::guard($this->getGuard())->login($this->create($request->all()));
return redirect($this->redirectPath());
}
我正在使用 Laravel 5.2 的默认身份验证,并且在使用框架的 authenticated() 方法时遇到了一些问题。该方法对于 运行 代码在身份验证成功后但在加载任何后续页面之前很有用。认证成功会触发AuthController中的authenticated()方法,我定义如下:
protected function authenticated() {
session(['loggedIn' => 'show']);
return redirect('/home');
}
如我们所见,它可以用于设置主页首次加载时所需的会话变量(但不应在每次重新加载主页时重置)。
在我的例子中,我使用 loggedIn 在用户登录或注册后每个会话只显示一次欢迎 div。为此,我在主页上添加了以下 PHP:
function displayWelcome() {
if (session('loggedIn') == 'show') {
echo '<div class="container" name="loggedIn" id="loggedIn">';
session(['loggedIn' => 'hide']);
} else {
echo '<div class="container" name="loggedIn" id="loggedIn" hidden>';
}
}
目前,此代码在现有用户登录时工作正常。
但是,它并不完全适用于用户注册。它确实成功重定向到主页,但欢迎 div 根本没有出现。奇怪的是,当我 echo session('loggedIn') before 调用 displayWelcome() 函数时,它在注册后输出 "hide" (并正确显示 "show"登录后)。我看不出它是如何获取值 "hide" 以及为什么它没有正确打开 div.
有什么提示吗?
您可以从此处找到的 RegistersUsers 特征覆盖 register
方法:
\Illuminate\Foundation\Auth\RegistersUsers
在您的 Auth 控制器中使用以下方法并在其中调用您的自定义代码:
/**
* Handle a registration request for the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function register(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
Auth::guard($this->getGuard())->login($this->create($request->all()));
return redirect($this->redirectPath());
}