重要提示 :API已更改-请先阅读以下内容: https : //developers.google.com/accounts/docs/AuthForInstalledApps
自2012年4月20日起,ClientLogin已被正式弃用。根据我们的弃用政策,它将继续起作用,但是我们建议您尽快迁移到OAuth 2.0。
我想构建两个应用程序客户端(某些python / java程序)和服务器(Google App Engine应用程序),并通过google acount从客户端到服务器进行身份验证,以获取一些秘密信息。
让我解释一下情况:
如何正确地从客户端向Google App Engine进行身份验证以访问https://example.appspot.com/restricted ?
另一种无需登录的简单方法是使用HMAC。 您基于时间戳(使每个请求唯一)和一个秘密MAC KEY创建MAC签名。 您的请求包含时间戳和MAC签名。 服务器可以验证MAC,因为它也具有秘密MAC KEY。
此Python代码在两侧(客户端和服务器)均有效:
import hmac, base64, hashlib
new_hmac = hmac.new(key=my_secret_MAC_KEY, msg=timestamp_in_request, digestmod=hashlib.sha256)
signature = base64.b64encode(new_hmac.digest()).decode()
if signature_in_request != signature : raise ValueError('access denied')
这对于单个用户来说效果很好,因为您必须管理单个密钥。 当您有很多用户时,客户端登录是一个更好的选择。