Laravel身份验证重定向错误

时间:2015-12-28 21:31:57

标签: php laravel authentication

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

我创建了一个新应用程序,并按照设置身份验证的文档,我搜索了堆栈溢出并克服了一个问题(我必须将auth路由放在中间件组中),但是现在无论我做什么它重定向到根" /"路径...即使我手动进入auth / logout然后auth / login ...有人可以帮忙吗?

2 个答案:

答案 0 :(得分: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网址时,都会将其重定向到某个/login页面,如果身份验证成功,他将能够访问/admin页面。< / p>

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

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

答案 1 :(得分:0)

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

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