REST API Как разделить grant type password и client_credentials в запросах

202
20 апреля 2022, 15:30

Всем привет. Разбираюсь с REST API, помогите пожалуйста разобрать один момент. Делаю на yii2, использую эту библиотеку.

Авторизация на сайте будет для приложения и для клиента. Для приложения выдаю токен по запросы с grant_type: client_credentials , для пользователя grant_type:password

Допустим у меня в ресте есть 5 методов:

GET /users
GET /users/1
PUT /users/1
DELETE /users/1
POST /users/create

Логично предположить, что GET /users не должен быть доступен для пользователя, а только для приложения.

Как мне понять в каком случае я могу дать ответ, а где я должен ответить forbidden? Ведь в обоих случаях запросы будут приходить с access token. Думал создавать для каждого клиента 2 приложения с разными client_id и client_secret (т.е. один будет для самого приложения, второй для пользователей приложения) и с помощью scopes разделять разрешенные маршруты. Но так и не понял как обращаться со scope, как их привязать к rbac, как автоматически определять по scope разрешенные маршруты, а ведь еще у каждого пользователя в зависимости от его состояния могут быть разные права (например если заказ отменен, он не может его оплатить и выдавать этот scope клиенту не нужно). Вопросов стало только больше.

Подскажите, может я двигаюсь совсем не в том направлении? И как делать в этом случае правильно? Если непонятно объяснил, напишите в комментарии - поправлю вопрос.

READ ALSO
ссылки кириллица modx

ссылки кириллица modx

сейчас ссылка выглядит так siteru/товары/?id=main-start, как сделать в modx что бы ссылка стала site

116
PHP date_default_timezone_set устанавливает не верное время

PHP date_default_timezone_set устанавливает не верное время

Прописал на сервере date_default_timezone_set("Europe/Kiev") в результате date('Y-m-d H:i') выводит 2020-11-05 09:03, корректное время 12:03

104
NodeJS Telegram bot request failed API

NodeJS Telegram bot request failed API

Бот перестает работать после ошибки:

262
Группировка товаров по ID в корзине

Группировка товаров по ID в корзине

Подскажите, пожалуйста, как сгруппировать одинаковые товары в корзине? Необходимо сделать так, чтобы одинаковый товар (c тем же id) при добавлении...

85