我对laravel 7自定义后卫身份验证有疑问。
$this->guard()->attempt(
$this->credentials($request), $request->filled('remember')
);
这行代码使用默认的防护措施'web',效果很好。
$this->guard('agent')->attempt(
$this->credentials($request), $request->filled('remember')
);
此行代码使用了自定义防护'agent',并且已正确配置,因为它确实将'1'返回为true,所以我也可以使用guard('agent')->user()
获取用户信息。
但是,它不会将用户登录到应用程序中。它循环回到登录页面。任何帮助,将不胜感激。
保护码:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'agent' => [
'driver' => 'session',
'provider' => 'agents',
],
],
提供者代码:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'agents' => [
'driver' => 'eloquent',
'model' => App\Agent::class,
],
],
答案 0 :(得分:0)
代替使用<form name="do-form">
<p>BMR Calculator</p>
<p>Gender:
<input type="radio" id="gender" name="gender" value="male">Male
<input type="radio" id="gender" name="gender" value="female">Female
</p>
<p>Weight: <input type="number" name="weight" id="weight" size="10" maxlength="6" onkeyup="fieldCheck"> kg</p>
<p>Height: <input type="number" name="height" id="height" size="10" maxlength="6" onkeyup="fieldCheck"> cm</p>
<p>Age: <input type="number" name="age" id="age" size="10" maxlength="3" onkeyup="fieldCheck"></p>
<input type="submit" id="calculate" value="Calculate" alt="calculate" onclick="toCalculate()">
<input type="submit" id="clear" value="Clear" alt="clear"><br><br>
<label>BMR = <input id="result" type="text" name="result" size="15" maxlength="10" /> calories/day</label>
</form>
将其替换为
$this->guard()->attempt(
如果您要使用默认防护,或者要使用特定防护,请按照这种方式进行操作。我们将使用您可以使用的现有防护装置。
auth()->attempt([$this->credentials($request), $request->filled('remember')])