Как работает авторизация в бэкэнде на сервере Java - PullRequest
0 голосов
/ 06 апреля 2020

Я хочу запрограммировать 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?

Заранее спасибо

...