【问题标题】:Laravel authentication redirect errorLaravel 身份验证重定向错误
【发布时间】:2016-04-02 17:57:04
【问题描述】:

我是 Laravel 的新手,所以请原谅我的无知。我正在阅读初学者教程,并且卡在了内置的身份验证系统上......

我创建了一个新应用程序并遵循有关设置身份验证的文档,我搜索了堆栈溢出并克服了一个问题(我必须将身份验证路由放在中间件组中),但是现在无论我做什么它都会重定向到根“/”路径...即使我手动转到身份验证/注销然后身份验证/登录...有人可以帮忙吗?

【问题讨论】:

  • 这种情况和这个问题类似,但是没能解决:stackoverflow.com/questions/31575113/…
  • 你需要展示一些代码。你的路线是什么样的?没有代码 = 每个人都在猜测。
  • 你把认证路由放在哪个中间件组里?

标签: php laravel authentication


【解决方案1】:

在 Laravel 5.2 中运行他们的标准后

> php artisan make:auth

假设我们要在转到/admin 路由时确保用户身份验证。

routes.php 中会有这样的条目:

Route::group(['middleware' => ['web', 'auth']], function() {
    // Only authenticated users may enter...
    Route::get('/admin', [
        'as' => 'admin', 'uses' => 'AdminController@index'
    ]);        
});

AuthController.php 中必须添加一个额外的方法:

class AuthController extends Controller
{
    ...

    public function authenticated()
    {
        return redirect()->intended();
    }    
}

因此,每次未经身份验证的用户尝试访问/admin URL时,它都会被重定向到某个/login页面,如果身份验证成功,他将能够访问/admin页面。

上面代码中需要注意的几点:

  • webauth 中间件组都是必需的(没有webauth 将没有会话支持,因此url.intended 不会保存在会话中,整个重定向机制不起作用)
  • AuthController 中的方法名称是 authenticated,而不是 Laravel 文档中提到的 authenticate(验证通过后调用)

【讨论】:

    【解决方案2】:

    我想我误解了,你的路线应该是这样的。

    Route::get('auth/login', 'Auth\AuthController@getLogin');
    Route::post('auth/login', 'Auth\AuthController@postLogin');
    Route::get('auth/logout', 'Auth\AuthController@getLogout');
    

    并且您的 Auth 文件夹中至少应该有 login.blade.php 模板(在视图中)。

    如果您真的要重新开始,请考虑删除该问题,因为它并不能真正帮助处于当前状态的任何人。


    在你的 Auth 控制器中试试这个

        public function authenticated( $request,  $user ) {
            return redirect()->intended($this->redirectPath().'?success');
        }
    

    【讨论】:

    • 其实...你的问题到底是什么?身份验证后重定向?或表单的发布,如...您的表单是否提交到 Auth/login(表单操作)?
    • Thaks,我将该功能添加到我的身份验证控制器,它似乎没有工作,所以我认为它可能是我的浏览器,我首先在隐身模式下使用 Chrome 并且它工作,然后尝试 Firefox 和它也有效,知道为什么它在 Chrome 中表现得很奇怪吗?
    • 我唯一能想到的是PHP文件没有被完全保存。你是说它在普通的chrome中不起作用吗?导致重定向,无论是否应该跨浏览器工作。请再测试一下,我在几个生产站点上运行了这段代码,从来没有给我带来任何麻烦。
    • 对不起,这是先发制人,它仍然无法正常工作..即使我手动转到身份验证/登录页面,它也会重定向到根页面并显示欢迎视图...我将完全今晚晚些时候重新开始。会话文件正在 storage/framework/sessions 中创建,因此它似乎正在处理重定向部分......
    猜你喜欢
    • 2015-11-11
    • 2016-04-03
    • 2019-09-10
    • 2016-05-13
    • 2017-12-24
    • 2022-01-24
    • 1970-01-01
    • 2021-11-27
    • 2017-01-12
    相关资源
    最近更新 更多