Laravel Spark - 登录时重定向
Posted
技术标签:
【中文标题】Laravel Spark - 登录时重定向【英文标题】:Laravel Spark - redirect on login 【发布时间】:2017-06-07 10:15:41 【问题描述】:我有一个非常简单的问题。我只想在用户登录后将用户引导到“/home”以外的地方。如果您可以更改 spark 软件并在每次部署中保留这些更改,这并不难。但是,composer 会在部署时重新安装所有内容,并且对核心供应商软件进行更改通常是不好的做法。
对于创作者来说,这似乎应该是一件非常基本且简单的事情。那么,我该怎么做呢?
我试过了……
在我的应用程序中更改身份验证控制器和密码控制器中的 redirectTo 和 redirectPath 变量。
向我的应用添加登录控制器 - 独立于 spark - 然后重置相同的变量。
尝试调用 Spark 服务提供者中的 afterLoginRedirectTo 和 afterAuthRedirectTo 函数。这返回了一个错误,表明函数不存在。
不知道从这里去哪里。
【问题讨论】:
【参考方案1】:在遇到同样的问题后,我进行了一些挖掘并找到了一种设置其他东西的方法,我已经改变了一些东西,但希望这对你也有用!
TLDR
Spark::afterLoginRedirectTo('somenewplace');
选项 1
使用的变量是:$afterLoginRedirectTo
from vendor\laravel\spark\src\Configuration\ManagesAppOptions.php
您可以在 SparkServiceProvider@boot 方法中进行设置:
Spark::afterLoginRedirectTo('somenewplace');
Spark 有自己的 LoginController\vendor\laravel\spark\src\Http\Controllers\Auth\LoginController.php
它有一个认证方法来处理两个因素认证设置:
if (Spark::usesTwoFactorAuth() && $user->uses_two_factor_auth)
return $this->redirectForTwoFactorAuth($request, $user);
return redirect()->intended($this->redirectPath());
RedirectPath() 来自 RedirectsUsers 特征,该特征仍在供应商中,并执行以下操作:
return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
在构造方法中设置了LoginController中的redirectTo:
$this->redirectTo = Spark::afterLoginRedirect();
选项 2
创建一个新路由来覆盖登录功能。
在 web.php 中指定登录后的新路由:
Route::post('/login', 'Auth\NewLoginController@login');
然后您可以扩展 LoginController 并覆盖已验证的方法:
class LoginController extends \Laravel\Spark\Http\Controllers\Auth\LoginController
public function authenticated(Request $request, $user)
/**
* @var $user User
* Set some logic here of your own for new redirect location
*/
if ($user->last_page_accessed != null)
$this->redirectTo = $user->last_page_accessed;
return parent::authenticated($request, $user);
【讨论】:
我尝试了afterLoginRedirect,但安装软件时会出错。调用未定义的方法 Laravel\Spark\Spark::afterLoginRedirectTo() 。我不想改变 Spark 的登录过程,因为这是购买该软件来处理的事情之一。 只需将Spark::afterLoginRedirectTo('/home');
添加到app/Poviders/SparkServiceProvider.php
的booted()
方法对我有用。以上是关于Laravel Spark - 登录时重定向的主要内容,如果未能解决你的问题,请参考以下文章