Токен Firebase FCM как токен безопасности для Android

Я разрабатываю приложение для Android и задаюсь вопросом, будет ли хорошей практикой использовать токены FCM в качестве токенов авторизации (и отказаться от текущих пользовательских токенов).

Пример сценария:

  1. При первом запуске приложения пользователь получает новый токен FCM
  2. Вместе с данными для входа приложение также отправляет токен
  3. При успешном входе в систему токен сохраняется на сервере (со сгенерированной датой истечения срока действия) и с этого момента будет отправляться с каждым запросом от клиента.
  4. Сервер использует токен для проверки запроса и для отправки push-уведомлений.
  5. Когда истечет срок действия токена, запросы не будут выполнены, и пользователь будет перенаправлен для входа в систему.

Пока все хорошо, но как насчет ротации токенов FCM? Следует ли мне сохранять токен FCM в общих настройках? Как насчет того, чтобы пользователь вошел в систему на нескольких устройствах?

Будем очень признательны за любые советы по этому поводу.


person Lucian Marica    schedule 14.11.2016    source источник
comment
Это означает, что токен авторизации вашего приложения никогда не изменится. Так что вам такой токен особо не нужен :)   -  person ErenisR    schedule 14.11.2016


Ответы (2)


Это не будет хорошей практикой, если вы используете токен для проверки подлинности клиента, поскольку FCM будет одинаковым для всех учетных записей на этом конкретном устройстве. Таким образом, в вашем случае вы будете аутентифицировать устройство вместо пользователя.

person Ak9637    schedule 14.11.2016

Вы можете проверить токен FCM, вызвав

(GET) https://iid.googleapis.com/iid/info/YOUR_APP_TOKEN_HERE
[Header] => 'Authorization: key=YOUR_KEY'

Просто и легко.

Если токен действителен, он вернет код состояния 200 с некоторыми дополнительными сведениями в формате JSON или, если он недействителен, код состояния будет 400 с деталями ошибки в формате JSON.

Реализуйте эту сторону сервера кода. получить токен из базы данных и передать указанный выше URL-адрес, и он отправит вам статус токена независимо от того, истек ли он или нет.

person Saud Khan    schedule 24.10.2019