【发布时间】:2014-04-20 14:39:41
【问题描述】:
我最近使用 laravel 构建了我的第一个 Web 应用程序,总的来说它很棒。除了这个问题,我已经很容易地掌握了这个框架。我正在尝试使用框架的内置身份验证。我可以为给定的请求登录我的用户,但我正在尝试通过 Auth::attempt() 方法实现记住我的功能,根据文档传递 true 作为第二个参数。
我已经尝试这个方法好几个小时了,没有任何运气。我在这个 url (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
【问题讨论】:
标签: php cookies laravel laravel-4 remember-me