Я хочу запрограммировать API с использованием протокола HTTP на веб-сервере java (ресурс), но я понятия не имею, как сделать бэкэнд.
Меня не очень интересуют фрагменты кода или схемы или как работает авторизация между клиентом и сервером ресурсов, но больше общей информации об авторизации и информации о бэкэнде.
Мой план состоит в том, что клиент отправляет токен доступа на предъявителя через запрос GET / POST / ... на сервер (Authorization: Bearer [API token]
) - Как клиент получает токен, теперь не интересно. Меня интересует, как сервер может проверить, если ...
- токен действителен
- носитель токена имеет доступ к запрошенному ресурсу
- ( менее важно) запрошенный ресурс существует.
Моей первой идеей было сохранение токенов API в файле json:
{
"[API token]": [
"[ID of resourceA]", // the resources, the bearer of the token has access to
"[ID of resourceB]",
...
],
...
}
Другой идеей было бы сохранить API токены как это:
{
"[user ID]": [
"API token 1",
"API token 2",
...
]
}
И ресурсы, к которым пользователь имеет доступ в другом файле.
Но есть ли лучший способ сделать это, возможно, формат файла для Java хранить ключи API? Как насчет безопасности? Существуют ли определенные стандарты?
Самое важное, я думаю, - хранить ли ключи в виде простого текста? Или я должен использовать, например, значения ha sh, et c для хранения токенов API?
Заранее спасибо