我是Laravel的新手,请原谅我的无知。我正在阅读初学者教程并且已经陷入了内置的身份验证系统......
我创建了一个新应用程序,并按照设置身份验证的文档,我搜索了堆栈溢出并克服了一个问题(我必须将auth路由放在中间件组中),但是现在无论我做什么它重定向到根" /"路径...即使我手动进入auth / logout然后auth / login ...有人可以帮忙吗?
答案 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>
上面的代码中需要注意几点:
web
和auth
个中间件组都是必需的(auth
没有web
没有会话支持,因此url.intended
不是保存在会话中,整个重定向机制不起作用)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');
}