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

时间:2015-01-01 12:11:03

标签: java android web-services oauth google-oauth

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

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

对于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)

每次我在我的应用程序中调用任何web服务之前,我都必须生成此令牌ID,因为此令牌在一小时内到期。这有点增加了延迟,因为首先它从Google获得令牌ID然后我用令牌ID调用我的Web服务。

这看起来不是最好的方法。你有什么建议吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我认为最好的方法是首先签入您的客户端代码,如果令牌已过期。如果不是,则不要生成新令牌,只需使用您已有的令牌直接调用Web服务即可。如果它已过期,则首先获取一个新令牌,然后调用Web服务。这样,只有当您的令牌实际到期时,即实际需要续订时,您才会进行2次远程呼叫。

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