【发布时间】:2019-07-21 01:28:33
【问题描述】:
我正在制作一个使用 laravel 护照后端从数据库获取和发布数据的反应应用程序。我可以完全控制应用程序代码和 laravel 后端代码。
我可以很好地制作访问令牌,无论是使用客户端,还是简单地通过发布用户来制作一个,但我不能使用此访问令牌来访问数据,如 here 所述。使用生成的访问令牌发送这样的请求每次都会给我一个 401。
我相信我的问题是在结交客户时。我有 2 个客户端(在运行 php artisan passport:install 时创建),但它们都有 user_id=null。我假设当用户使用客户端例如发出访问令牌时,这应该设置一些整数?但是,它没有。
那么,有没有人知道我做错了什么?
下面我发布了我的用户模型,以及迁移文件 users 和 oath_clients。如果需要,请随时索取更多代码!
用户模型:
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'api_token', 'redcap_token', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
用户迁移:
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('api_token', 60)->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
Oauth 迁移
class CreateOauthClientsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('oauth_clients', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->index()->nullable();
$table->string('name');
$table->string('secret', 100);
$table->text('redirect');
$table->boolean('personal_access_client');
$table->boolean('password_client');
$table->boolean('revoked');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('oauth_clients');
}
}
【问题讨论】: