【问题标题】:Laravel 5.2: where are auth routes declared?Laravel 5.2:在哪里声明了身份验证路由?
【发布时间】:2016-02-15 13:40:33
【问题描述】:

我需要重新排列身份验证系统使用的 url。拉拉维尔 5.2。 我使用了artisan make:auth,现在我找不到告诉路由器如何处理/login/logout 的位置。恕我直言,在我看来,Laravel 努力实现的“易用性”倒退了一步,因为在最近的修订中,许多常见的被覆盖的特性应该变得如此模糊。

我将应用程序划分为管理和公共区域,每个区域都有单独的登录机制:/admin/login 由核心 Laravel 系统处理,/login 将用于前端管理员用户,身份验证由一组不同的类处理。

有人能帮我解答一下吗?

【问题讨论】:

  • 我现在知道了,您需要构建一个新的控制器,一个用于公共,一个用于管理员,我将发布一个指向 url 的链接,以帮助构建您想要的东西。
  • 在我的回答中,您发现 git 涵盖了您需要覆盖默认身份验证的所有内容
  • 是的,根据您的建议,我能够完成这项工作。我将很快为这个问题添加一个操作示例。
  • 欢迎您编辑我的答案,我会批准,您也会赞许

标签: laravel laravel-5.2


【解决方案1】:

php artisan make:auth 将以下行添加到您的路由文件中:

Route::group(['middleware' => 'web'], function () {
    Route::auth();
}

Route::auth() 是定义以下路由的快捷方式:

// Authentication Routes...
$this->get('login', 'Auth\AuthController@showLoginForm');
$this->post('login', 'Auth\AuthController@login');
$this->get('logout', 'Auth\AuthController@logout');

// Registration Routes...
$this->get('register', 'Auth\AuthController@showRegistrationForm');
$this->post('register', 'Auth\AuthController@register');

// Password Reset Routes...
$this->get('password/reset/{token?}', 'Auth\PasswordController@showResetForm');
$this->post('password/email', 'Auth\PasswordController@sendResetLinkEmail');
$this->post('password/reset', 'Auth\PasswordController@reset');

因此,假设您运行auth:make 并且没有接触任何东西,那么这些将是您可以使用的路线。

来源:https://mattstauffer.co/blog/the-auth-scaffold-in-laravel-5-2#routeauth

【讨论】:

  • 我要问的是一种覆盖 make:auth 创建的路由的方法。就你而言,你是正确的,但我需要采取下一步行动。
【解决方案2】:

您需要构建 2 个系统,一个用于公共,一个用于管理。

Jeffrey Way (Laracast) 制作了一段视频,解释了构建完整的定制登录系统所需的一切,这与您从 artisan make:auth 获得的内容相同。

视频链接是https://laracasts.com/lessons/email-verification-in-laravel。该视频不是免费的,但 Jeffrey 在这个 git (https://github.com/laracasts/Email-Verification-In-Laravel) 上有可用的代码。

我用它构建了两个使用同一个数据库的独立系统。

注意:该链接在 Laravel 中称为电子邮件验证,但它涵盖了身份验证的所有内容。

【讨论】:

  • 谢谢 maytham,我有一个 laracasts 帐户。很高兴知道要研究哪个程序。
  • 欢迎您,希望对您有所帮助,并在您到达时告诉我。
  • 请包含链接内容的相关部分,因为如果该网站出现故障,您的回答将毫无用处。
  • @totymedli 我需要一些时间来收集所有相关部分。
【解决方案3】:

您只需要更改路径的两个参数。

protected $redirectPath = '/dashboard';

当用户成功通过身份验证后,他们将被重定向到此路径。

第二个是登录路径。您可以通过在 AuthController 上定义 loginPath 属性来自定义失败的身份验证后重定向位置:

protected $loginPath = '/login';

【讨论】:

  • 不是我想要的。我同时需要两个不同的登录区域,而不仅仅是更改一个。
猜你喜欢
  • 2016-09-15
  • 1970-01-01
  • 1970-01-01
  • 2016-02-05
  • 2018-11-22
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多