【发布时间】:2019-07-04 20:21:56
【问题描述】:
我正在学习如何创建自定义身份验证系统。我创建了自己的后卫球员。在我的测试功能上,我正在使用尝试()来验证用户身份。检查通过。然后我创建了 test2 方法,该方法仅适用于登录用户。
我的路线是:
Route::get('test', 'MyController@test');
Route::get('test2', 'MyController@test2')->middleware('auth');
我的控制者是:
class MyController extends Controller
{
public function test()
{
$cr = ['name' => 'pl', 'password' => 'pl'];
if (Auth::guard('player')->attempt($cr)) {
$user = Auth::guard('player')->user();
return 'ok';
}
return 'not found';
}
public function test2()
{
return 'test2';
}
}
我的守卫配置是:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'player' => [
'driver' => 'session',
'provider' => 'player',
],
'club' => [
'driver' => 'session',
'provider' => 'club',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'player' => [
'driver' => 'eloquent',
'model' => App\Player::class,
],
'club' => [
'driver' => 'eloquent',
'model' => App\Club::class,
],
],
我想在执行测试功能后手动(而不是通过重定向)访问 test2 路由,但我不能。我收到 Auth 默认登录表单。
我应该自己编写中间件还是手动设置会话?请帮忙。
【问题讨论】:
-
你能发布“玩家”守卫配置吗?