当前位置: 首页 > 知识库问答 >
问题:

GCM令牌刷新以及何时将令牌发送到服务器

南门嘉
2023-03-14

下面是官方指南中的GCM Android集成示例。

特别是,我对上述链接类中的以下行感到困惑:

// You should store a boolean that indicates whether the generated token has been
// sent to your server. If the boolean is false, send the token to your server,
// otherwise your server should have already received the token.

现在,每当我的主要活动启动时,我都会调用intent服务,我相信instanceID负责启动令牌刷新。

我是否应该在每次从我的主要活动启动此GCM注册意图时检查Shared Prefs值。但是,在这种情况下刷新将失败,因为在初始令牌获取之后,条件将始终为true。

我应该放弃共享prefs逻辑吗?这样每次都会向我的服务器发送一个新的令牌。这样做的正确方式是什么?令牌如何刷新,何时刷新?

共有1个答案

尤博达
2023-03-14

是的,您不需要将其保存在SharedReference中。为了保护客户端应用程序和应用程序服务器免受注册令牌的潜在恶意重复使用,您应该定期从服务器启动令牌刷新。当从服务器端启动GCM注册令牌刷新时,客户端应用程序必须通过GCM注册客户端/服务器握手处理令牌刷新消息。

根据文档,备份Google Cloud Messaging注册返回的注册令牌可能会导致还原应用程序的通知出现意外行为。这是因为当用户在新设备上安装应用程序时,应用程序必须查询GCM API以获取新的注册令牌。如果旧的注册存在,因为系统已经备份并还原了它,那么应用程序不会寻找新的令牌。要防止出现此问题,请从备份文件集中排除注册令牌。

以下是谷歌服务的演示应用程序-MyInstanceIDListenerService:https://github.com/googlesamples/google-services/blob/master/android/gcm/app/src/main/java/gcm/play/android/samples/com/gcmquickstart/MyInstanceIDListenerService.java#L38

有关更多信息,请阅读谷歌官方文档:https://developers.google.com/cloud-messaging/registration

 类似资料:
  • 是否可以将oauth1 3LO访问令牌和机密迁移到oauth2刷新令牌? 1){“错误”:“unauthorized_client”} 从云控制台使用有效的client_id和client_secret。看起来client_secret是错误的,但我们重新检查并使用了不同的应用程序--同样的问题。 2)我们有一个测试web oauth2应用程序,错误为:{“error”:“disabled_cli

  • 我正在尝试从应用程序服务中获取Google的刷新令牌,但我不能。 日志说 2016-11-04T00:04:25 PID[500]收到的详细请求:获取https://noteappsvr.azurewebsites.net/.auth/login/google?access _ type = offline 2016-11-04t 00:04:25 PID[500]从https://account

  • 我如何从第一次授权代码中获得刷新令牌和访问令牌?并且,我如何重用这个刷新令牌来获得一个新的访问令牌,以便使用Java API上传到Google Drive?这不是一个web应用程序。它在Java Swing代码中。

  • 授权服务器可以给Web应用客户端和本机应用程序客户端颁发刷新令牌。 刷新令牌在传输和储存时必须保持机密性,并只与授权服务器和刷新令牌被颁发的客户端共享。授权服务器必须维护刷新令牌和它被颁发给的客户端之间的绑定。刷新令牌必须只能使用带有RFC2818定义的服务器身份验证的1.6所述的TLS 传输。 授权服务器必须验证刷新令牌和客户端身份之间的绑定,无论客户端身份是否能被验证。当无法进行客户端身份验证

  • 刷新令牌是用于获取访问令牌的凭据。刷新令牌由授权服务器颁发给客户端,用于在当前访问令牌失效或过期时,获取一个新的访问令牌,或者获得相等或更窄范围的额外的访问令牌(访问令牌可能具有比资源所有者所授权的更短的生命周期和更少的权限)。颁发刷新令牌是可选的,由授权服务器决定。如果授权服务器颁发刷新令牌,在颁发访问令牌时它被包含在内(即图1中的步骤D)。 刷新令牌是一个代表由资源所有者给客户端许可的授权的字

  • 我对oauth2中的刷新令牌有点困惑。如它所说的访问令牌限制了黑客可以使用用户凭证的1小时的时间窗口,刷新令牌是万岁令牌,可以用来重新创建访问令牌。 我很困惑,如果有人从cookie中窃取了访问令牌,他也可以窃取刷新令牌,并可以使用刷新令牌创建新的访问令牌,因为我在JQuery中有ajax请求(客户端)