谷歌OAuth2 -安装的应用程序-总是看到一个同意屏幕



我正在尝试在c#应用程序中设置一个登录表单。登录的选项之一是通过谷歌。为此,我使用Oauth2文档安装应用程序:https://developers.google.com/accounts/docs/OAuth2InstalledApp.

一切似乎按预期工作,但同意屏幕。每次请求授权代码时,都会显示同意屏幕。对于已安装的应用程序,这是预期的吗?我使用以下参数:

redirect_uri = urn:ietf:wg:oauth:2.0:oob

response_type = code

我尝试将approval_prompt设置为auto,并尝试将access_type组合为offlineonline,但仍然没有帮助。

请注意,类似的实验与"Web应用程序";(使用不同的客户端id)工作正常,我看到同意屏幕只有一次。

任何帮助/建议都将是感激的。

谢谢。

对于已安装的应用程序,思路是获取一个代码并将其转换为刷新令牌并存储刷新令牌。用户不需要一次又一次地登录。是用户退出应用程序,还是您在一段时间后删除令牌?

在web上的行为不同的原因是因为我们决定在没有批准的情况下返回一个"代码"(在应用程序已经被用户批准的情况下),但是这个代码不能用于转换为刷新令牌。我们这样做是因为用户最终会因为各种原因(cookie消失)而退出web应用程序,并且开发人员在不知道用户是否已经批准的情况下请求"代码"。

最新更新