【发布时间】:2016-04-22 19:34:26
【问题描述】:
我正在使用 Laravel 中提供的基本 HTTP 身份验证来登录我的网站。但是,当我调用 Auth::Check() 时,即使我已登录,我总是得到 false 作为响应。
Auth::Check() 是否不适用于基本身份验证模型,如果不能,是否有任何方法可以检查基本身份验证以查看用户是否已登录?
这是我的用户类:
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'email', 'password',
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function getRememberToken()
{
return $this->remember_token;
}
public function setRememberToken($value)
{
$this->remember_token = $value;
}
public function getRememberTokenName()
{
return 'remember_token';
}
}
这是我设置要使用的身份验证过滤器的代码段
$this->middleware('auth.basic', ['only' => ['create', 'store', 'edit', 'update', 'destroy']]);
这是我的 Auth::Check() 电话(总是打印 0):
public function show($id)
{
echo \Auth::check() ? '1' : '0';
die();
#.......
}
【问题讨论】:
-
Auth::check 正是使用的,你能发布你的代码吗?
-
@LiamPotter 看起来您已经使用中间件检查了身份验证。为什么要在控制器中再次检查它?如果你没有通过身份验证,Laravel 不会让你进入控制器方法。
-
@parrker9 仅用于检查调用方法时是否返回了值。如果检查在我的视图代码中通过,我想使用 Auth::Check 输出某些 HTML 元素。
-
你也可以添加路线吗?到目前为止,您的代码似乎是正确的
标签: php laravel authentication http-authentication