Laravel身份验证重定向错误


Laravel authentication redirect error

我是Laravel的新手,请原谅我的无知。我正在学习初学者教程,并被内置的身份验证系统卡住了。。。

我创建了一个新的应用程序,并遵循了关于设置身份验证的文档,我搜索了堆栈溢出并解决了一个问题(我必须将身份验证路由放在中间件组中),但现在无论我做什么,它都重定向到根"/"路径。。。即使我手动转到auth/loogue,然后再转到auth/login。。。有人能帮忙吗?

在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(在验证身份验证后调用)

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

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');
    }