【发布时间】:2017-05-09 21:12:24
【问题描述】:
我是 laravel 新手
我编写了一个许多用户都可以使用的脚本
但我遇到的问题是:
当像“Helen”这样的用户登录时,她可以看到她的个人资料 但如果下一个像“Maria”这样的用户登录,Marias 面板将为他们俩显示
我认为这意味着只能同时激活一个会话,并且会话的值将针对最新用户 并且旧用户会话不会过期,只是会话中的值将被更改,因此她识别为另一个用户并且可以看到该用户的个人资料,并且当用户注销时,由于会话关闭,所有用户将被注销。 这是我的简单代码:
public function Login(){
$this->Token();
$pack=Input::all();
try {
$result=DB::table('user')->where('Email','=',$pack['email'])->get();
if (Hash::check($pack['password'], $result[0]->Password)){
session(['there' => $result['0']->Email]);
return redirect('dashboard');
}
return redirect('dashboard')->with('does','wrong password');
}catch(Exception $e){
return redirect('dashboard')->with('does',.$e);
}
}
public function UserType() {
if(!session('there'))
return "Not Logged";
else {
$result = DB::table('user')->where('Email', '=', session('there'))->get();
if($result!=null)
return "User";
}
public function ShowDashboard(){
if($this->UserType()=="Not Logged")
else
return view('pages/dashboard');
}
【问题讨论】:
-
似乎有些不对劲;为什么要完全避开 Laravel 的内置身份验证?我在您的方法中发现了一些可能返回未知值的逻辑漏洞。
-
返回值为真...我试过dd(session),返回值为真
标签: php laravel session authentication