我有一个棘手的情况,而玩OAuth2。
-
首先要求用户进行身份验证。他授予访问权限,将凭据存储在存储中(DB、GAE Datastore等)。
-
转到您的Google个人资料中的授权访问并撤销应用
-
返回到应用程序,启动一个导致API调用的操作(已测试)
-
App正在从store中检索凭据。测试证书有效性(非null且无效属性为False)
-
调用API
-
检索401,Unauthorized异常
如何在有效调用API之前检测凭据无效?也许这就是有证书的工作方式?
谢谢你的帮助。
您正在存储哪些凭据?访问令牌?刷新令牌?
考虑使用tokeninfo端点https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=
在使用access_token之前,首先在GoogleAPI中调用[tokeninfo](总是,如果它是一个新的access_token)。我浪费了几个小时来解决这个问题。Windows应用程序的工作流程:
- oAuth2 -> access_token*(* -未验证)
- GoogleAPI。tokeninfo with [access_token*] -> "ok"或"invalid"
- if "ok" -使用请求的权限