Я впервые пробую laravel святилище.
Я хочу выдать токены для красноречивой модели под названием Campaign.
Это моя кампания. php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Laravel\Sanctum\HasApiTokens;
class Campaign extends Model
{
use HasApiTokens;
protected $guarded = ['id'];
public function users()
{
return $this->belongsToMany(User::class)->withPivot(['percentage'])->withTimestamps();
}
}
Как вы можете видеть, я наделил черту HasApiTokens
.
С этим я могу выдать токен для любой кампании, подобной этой:
$campaign->createToken('my-token-name');
Все идет нормально. Он работает и правильно хранится в базе данных.
Проблема начинается, когда я пытаюсь использовать токен для защиты любого запроса с помощью промежуточного программного обеспечения sanctum. Это ошибка, которая появляется, когда я делаю это:
Call to undefined method App\\Campaign::getAuthIdentifier()
Ну, я думаю, это getAuthIdentifier()
происходит из класса use Illuminate\Foundation\Auth\User
, который обычно импортируется на модели User как Authenticatable
;
Я пытался создать этот метод на моей модели Campaign и попробовать его, вот что я сделал:
public function getAuthIdentifier()
{
return 'id';
}
Когда я попытался опубликовать снова, похоже, это работает. Но я думаю, что это не правильно, потому что это немного странно. И становится еще хуже, когда я звоню auth()->user()
и я могу получить доступ к объекту Campaign. Я знаю, что это является следствием того, что я сделал здесь.
Может ли этот пакет выдавать токены на основе чего-то, что на самом деле не является пользователем?
Если вы знаете, как это сделать правильно, Буду признателен за ответ :) 1032 *