В дополнение к ответу Алекса, если вы хотите использовать встроенную защиту token
, все, что вам нужно сделать, это добавить столбец api_token
в таблицу пользователей следующим образом:
$table->string('api_token', 60)->unique()->nullable()->default(null);
Вот и все.Теперь вы можете просто использовать промежуточное программное обеспечение auth:api
и отправить токен через а) в теле запроса как api_token
, или 2) в заголовке bearer token
или 3) в заголовке PHP_AUTH_PW
.
Если вы хотите сгенерировать API-токен, просто добавьте метод, который генерирует уникальный для каждого пользователя, например, так:
public function generateApiKey(){
do {
$this->api_token = str_random(60);
} while($this->where('api_token', $this->api_token)->exists());
$this->save();
}
или вы также можете использовать Str::orderedUuid
Вот и все.Passport
лучше, чем token
, потому что в token
маркер API в значительной степени хранится в виде обычного текста без истечения срока действия в базе данных, что может быть небезопасно.Но если ваш вариант использования требует простоты, это может быть путь