Firebase FCM 令牌作为 Android 的安全令牌

Firebase FCM token as security token for Android

我正在开发一个 Android 应用程序,想知道将 FCM 令牌也用作授权令牌(并删除当前的自定义令牌)是否是一个好的做法。

示例场景:

  1. 当应用程序第一次启动时,用户会得到一个新的 FCM代币
  2. 通过登录数据,应用程序还发送令牌
  3. 成功登录后,令牌将存储在服务器上(具有生成的到期日期),并且从现在开始将随每个 来自客户的请求
  4. 服务器使用令牌验证请求和发送推送通知
  5. 令牌过期后,请求将失败,用户将被重定向到登录

到目前为止一切都很好,但是 FCM 代币轮换呢? 我应该将 FCM 令牌保存在共享首选项中吗? 用户在多个设备上登录怎么样?

如有任何建议,我们将不胜感激。

如果您使用令牌来验证客户端的真实性,这不是一个好的做法,因为 FCM 对于该特定设备上的所有帐户都是相同的。因此,在您的情况下,您将验证设备而不是用户。

您可以通过调用

来验证 FCM 令牌
(GET) https://iid.googleapis.com/iid/info/YOUR_APP_TOKEN_HERE
[Header] => 'Authorization: key=YOUR_KEY'

简单易行。

如果令牌有效,则它将 return 200 状态代码以及 JSON 格式的更多详细信息,或者如果它无效,则状态代码将为 400,并在 JSON 中提供错误详细信息格式。

在服务器端实现此代码。从数据库中获取令牌并传递上面的 URL,无论令牌是否过期,它都会向您发送令牌状态。