当前位置: 首页 > 知识库问答 >
问题:

通过身份验证中间件重定向到自定义登录页面

司浩壤
2023-03-14

在不生成Laravel默认身份验证控制器的情况下,我创建了自己的登录和注册控制器。

我的路线是这样的

用于登录

GET   /login   ->> SessionController@create -->name = login.create
POST  /login   ->> SessionController@store -->name = login.store

登记

GET     /registration   ->> RegistrationController@create  -->name = register.create
POST    /registration   ->> RegistrationController@store   -->name = register.store

一切都很好。现在我需要一件事。每当我放置auth中间件时,一个未经身份验证的用户将被重定向到我的自定义登录页面路由到登录。创建

如何做到这一点?

共有1个答案

袁泓
2023-03-14

您可以扩展illumb\Auth\Middleware\Authenticate中间件,或者只添加一个新的中间件:

class AuthMiddleware
{
    public function handle($request, Closure $next)
    {
        if (auth()->guest()) {
            return redirect()->route('login.create');
        }

        return $next($request);
    }
}

App\Http\Kernel中注册它。php

protected $routeMiddleware = [
    'auth.custom' => \App\Http\Middleware\AuthMiddleware::class,
    ....

并使用:

Route::group(['middleware' => 'auth.custom'], function () {
    // Protected routes.
});
 类似资料:
  • 我在auth中间件方面遇到了一些问题。我将中间件放在一个路由组中,并回滚了users表。我希望应用程序将我重定向到我的登录/搜索页面,但它没有这样做,它只是给了我“尝试获取非对象的属性”,它指的是我的仪表板视图中的函数(我不应该访问该函数)。 这是我的路线代码: 以下是我的观点: 另外,我不确定从数据库中删除用户是否意味着Laravel将自动删除用户会话。 谢谢你的帮助!

  • 试图阻止来宾用户的路由。当有人点击时,它将检查用户是否以管理员身份登录。如果admin然后它工作正常,如果代理然后它重定向到登录页面,但如果我作为访客用户点击链接,它不会将我重定向到登录页面,而是显示一些错误: 路由中的错误异常。php第53行:尝试获取非对象的属性。 这是我的路线。php文件:

  • 问题内容: 编辑:忘记提及我与AngularJs在一起仅一周了,因此,如果您看到某些东西,您认为应该做得更好,并且与问题无关,请随时在评论部分告诉我。 好的,所以我有我的身份验证控制器和提供程序,由于它们与问题范围无关,因此将不显示。然后,我有一个拦截器来检查拨打电话时用户是否已通过身份验证。如果是这样,我将请求的标头设置为包括用户的Token(如果没有),则将用户重定向到登录页面,甚至不向服务器

  • 我正在使用ApacheShiro开发JSF应用程序。我用Shiro引诱用户,并将其重定向到主页。这没有问题。验证后,当我尝试访问登录页面时,它不会将我重定向到主页。即使已经有loggedin用户,我也可以再次登录。正如巴卢斯克在他的博客文章中提到的,我正在进行程序登录。 这个滤镜是根据博文写的。 } 问题是什么?如果用户已经通过身份验证,我该如何重定向用户? 编辑:现在,如果用户已经通过身份验证,

  • 我们正在研究在我们的应用程序中实施基于SAML的SSO身份验证,我想知道是否可以通过SAML指定自定义重定向URL。换句话说,我们可以在身份提供者中配置一个服务提供者,并让服务提供者通过SAML请求指定身份提供者在登录后应将用户重定向到哪里? 我们之所以要寻找这样的东西,是因为我们的应用程序运行在不同的服务器上,这取决于它们所处的开发阶段(开发、测试、暂存、生产)。如果我们不必为要迁移到SAML

  • 我正在验证我的用户,并将其重定向到仪表板(如果凭据正确)。我想保护仪表板路由并添加中间件auth,但现在它总是重定向到登录页面。 路线。php HomeController.php 中间件Authenticate.php 中间件重定向已验证。php