我们是否需要在每次调用 webservice 之前生成令牌 ID

Do we need to generate token id everytime before call webservice

你好,我是在 android 中验证后端的 OAuth 流程,为此我在 Google API 控制台创建了一个项目,我在那里创建了 Web 客户端 ID 和 android 应用程序。

我这样做是为了让系统更安全,这样任何黑客都无法攻击我的网络服务,如果有人攻击,那么身份验证服务器会发送响应(无效令牌)。

对于 android 中的这个过程,我必须生成令牌。 Google Play 服务库有一个方法。

public static String getToken (Context context, String accountName, String scope)

http://developer.android.com/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context,%20java.lang.String,%20java.lang.String)

每次在我的应用程序中调用任何网络服务之前,我都必须生成此令牌 ID,因为据我所知,此令牌将在一小时内过期。这稍微增加了延迟,因为首先它从 Google 获取令牌 ID,然后我使用令牌 ID 调用我的 Web 服务。

这似乎不是最佳方法。您对此有何建议?

提前致谢。

我认为最好的方法是在令牌已过期时首先检查您的客户端代码。如果不是,那就不要生成新的token,直接用已有的token调用web服务即可。如果它已过期,则首先获取一个新令牌,然后调用 Web 服务。这样,只有当您的令牌实际上已过期时,即您实际需要更新它时,您才会进行 2 次远程调用。

要实施此策略,您需要记住(在您的代码中)是:
1) 您生成令牌的日期和时间; 2) 持续时间。