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

laravel部署后登录无限循环

裘丰
2023-03-14

我正在使用Sentinel-https://github.com/rydurham/Sentinel-来处理我的应用程序的用户身份验证,并将整个'admin'子域routes.php这样包装:

Route::group([ "domain" => 'app.domain.dev', 'before' => 'Sentinel\auth' ], function()
{
    Route::group(array('prefix' => 'one'), function()
    {
        ...
    });

    Route::group(array('prefix' => 'two'), function()
    {
        ...
    });

    Route::get('/', array('as' => 'home', 'uses' => 'DashboardController@index'));
});

在本地机器上,一切正常-应用程序。领域如果登录,dev将显示管理仪表板,如果未登录,则显示登录页面,而注销会将用户返回到登录页面。

但是,一旦通过Forge部署,应用程序将不再可用。领域如果未登录,dev将导致无限循环错误。但是/login仍然可以访问并工作-一旦登录,仪表板就可以正常加载。如果用户注销,则再次出现无限循环错误。

我不知道为什么它可以在本地工作而不部署,但我猜这与“Sentinel\auth”过滤组中的“home”路由有关?

Sentinel的身份验证过滤器:

Route::filter('Sentinel\auth', function()
{
    if (!Sentry::check()) return Redirect::guest(Config::get('Sentinel::config.routes.login'));
});

...config.routes.login设置为“登录”。

我理解这个问题的相似之处——laravel中的重定向循环——但让我困惑的是在本地工作/部署中断。

共有1个答案

郗亦
2023-03-14

算是解决了。正如链接所建议的,最简单(hackiest)的方法是从auth组中删除root,erm,路由:

Route::group([ "domain" => 'app.domain.dev' ], function()
{
    Route::group([ 'before' => 'Sentinel\auth' ], function()
    {
        Route::group(array('prefix' => 'one'), function()
        {
            ...
        });

        Route::group(array('prefix' => 'two'), function()
        {
            ...
        });

        Route::get('dashboard', array('as' => 'home', 'uses' => 'DashboardController@index'));
    });

    Route::get('/', function()
    {
        if(!Sentry::check()) return Redirect::to('login');
        elseif(Sentry::check()) return Redirect::to('dashboard');
    });
});

我相信还有更优雅的解决方案,但我把它留在这里,以防有任何用处。

 类似资料:
  • 我的Symfony版本是:3.0.6 我从几个小时与认证战斗。我有登录表格 我的security.yml看起来: 若数据库中不存在用户名,表单可以显示给我。但如果我输入了一些密码(也错了),我在“check_path”URL上有无限循环。 登录表单上的字段正确:\用户名和\密码。表单“action”与安全中的“check_path”相同。 我做错了什么...这是非常奇怪的,因为所有是像在教程。 控

  • git repo https://github.com/detoner777/email-feedback-app heroku错误日志: 2019-08-20t09:44:08.211815+00:00Heroku[router]:at=error code=h12 desc=“请求超时”方法=get path=“/auth/google/callback?fuserinfo.profile&a

  • 伙计们!我不熟悉Laravel,正在使用以下技术进行项目工作:Laravel Framework 5.7。适用于Windows 7.2的15 XAMPP。1 PHP版本:7.2。1 Apache/2.4。29 MySQL:libmysql-mysqlnd5.0。12开发 一切正常:登录和注册。然后我想限制应用程序的注册。所以我找到了下面的解决方案StackOverflow上的问题:如何禁用注册新用

  • 我正在尝试在实时服务器上加载我的项目。 这些是规格 PHP版本5.6服务器:Windows 存储供应商引导/缓存 但它一直给我以下流错误: 致命错误:无法打开未捕获的异常“UnexpectedValueException”,消息为“流或文件”C:\inetpub\wwwroot\websites\mysite\storage/logs/laravel.log“无法打开流:权限被拒绝”,在C:\in

  • 我是拉威尔的新手,刚刚开始构建我的第一个应用程序。我使用的是Laravel5.2。5.我正在跟踪laracast视频以实现身份验证。当我第一次启动应用程序时,我可以访问/auth/register、/auth/login和/auth/logout。注册和登录工作正常。Register在我的用户表中创建一个条目,/auth/login允许我使用该用户登录。成功登录后,我尝试注销。当我尝试访问/aut

  • 每个人登录后,我一直无法使用Laravel重定向。连接工作,在我登录后,它重定向到一个空白页面,但如果我更改url路径,我可以访问不同的网页。我们将不胜感激!我正在使用LDAP进行连接,它正在工作。 请让我知道,如果有任何其他代码,我应该提供。 非常感谢。 (重定向IfAuthenticated.php) 命名空间应用程序\ Http\中间件; 使用闭包;使用Illumb\Support\Faca