Laravel 5.7
PHP 7.2.10
Run Code Online (Sandbox Code Playgroud)
目前我可以使用 web 和 api 守卫中的任何一个,有什么方法可以同时使用两者,以便 web 应用程序和 api 可以一起工作。
就像是
return [
/*
|--------------------------------------------------------------------------
| Authentication Defaults
|--------------------------------------------------------------------------
|
| This option controls the default authentication "guard" and password
| reset options for your application. You may change these defaults
| as required, but they're a perfect start for most applications.
|
*/
'defaults' => [
'guard' => 'api|web',
'passwords' => 'users',
],
Run Code Online (Sandbox Code Playgroud)
如果不使用架构,这是一个需要更改架构的解决方案/解决方法,这是我不喜欢的。此外,我不需要访问令牌进行注册,这个答案在做什么。
api.php
Route::group([
'middleware' => 'api|web',
'prefix' => 'auth'
], function …Run Code Online (Sandbox Code Playgroud) laravel laravel-middleware laravel-5.7 laravel-guard laravel-jwt
我使用Laravel Breeze作为身份验证脚手架包。我想使用Laravel Guards为两种用户类型(管理员、用户)的两种不同注册表单创建多重身份验证。
我想要实现的主要想法:
我在数据库中有两个表,一个用于管理员,另一个用于用户,我想要实现的是,如果管理员选择将帐户注册为管理员,它将显示一个包含管理员指定字段的注册表单。之后,我想检查用户是否以管理员身份登录,或者如果以管理员身份登录,则将他/她重定向到专为管理员创建的指定仪表板。
它可以很好地注册,但无法以管理员身份登录,这里是我想要实现的目标的简单解释:
应用程序\模型\Admin.php
<?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class Admin extends Authenticatable
{
use HasFactory, Notifiable;
protected $table = 'admins';
protected $fillable = [
'name',
'email',
'password',
];
Run Code Online (Sandbox Code Playgroud)
配置\auth.php
<?php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => …Run Code Online (Sandbox Code Playgroud)