我最近使用laravel构建了我的第一个Web应用程序,总的来说它非常棒。除了这一个问题,我已经很容易地接受了框架。我正在尝试使用框架内置的身份验证。我可以登录我的用户以获取给定的请求,但我正在尝试通过Auth::attempt()
方法实现记住我的功能,并按照文档传递true作为第二个参数。
我一直在尝试这种方法好几个小时而没有任何运气。我在这个网址(https://www.youtube.com/watch?v=hYUf6u_txhk#aid=P-a-d6RlOC8)看到了一个视频,其中显示了当用户在应用程序中被记住时设置了哪个cookie,而当我尝试记住我的用户时,我的浏览器中没有设置此cookie。没有设置cookie,我的用户也没有被记住。这是我的代码。
if (Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password')), true))
{
$userid = DB::table('users')->where('email', '=', $userdata['email'])->pluck('id');
Auth::login(Auth::user());
if (Auth::check())
{
echo "LOGGGEED IN WOOOOOOO";
}
else {
echo "user not logged in";
}
return Redirect::to('/dashboard/' . $userid);
}
重定向发生之前,这是我看到的页面
这是处理重定向的控制器。
class DashboardController extends BaseController
{
public function showDashboard($userid)
{
if (Auth::viaRemember())
{
echo "WOOOOOOOOOOOOOOOO";
}
else {
echo 'booooooo';
}
if (Auth::check())
{
echo 'YAY LOGGED IN';
}
else {
echo 'BOO AGAIN';
}
$user = User::where('id', '=', $userid)->first();
$subscriptions = $user->subscriptions;
$orders = $user->orders;
return View::make('dashboard', compact('user', 'subscriptions', 'orders'));
}
}
但是当重定向发生并加载/ dashboard / {userid}时,您可以在左上角看到我的echo
语句显示用户没有被记住!
我在这一点上非常沮丧,因为这是我完成申请所需的最后一步,我很尴尬,laravel文件说" Laravel旨在使实施变得简单"。除了这个部分,我的所有其他应用程序都在工作,所以我很感激这个问题的所有帮助!如果您需要更多信息,请随时问我。Dashboard page
答案 0 :(得分:3)
解决方案:
在数组中的app / config / session.php中,我的'driver'键的值为'file'。将此切换为'cookie'后,一切都按预期工作。