Google oauth Google OAuth2-已安装的应用程序-始终看到同意屏幕

Google oauth Google OAuth2-已安装的应用程序-始终看到同意屏幕,google-oauth,Google Oauth,我正在尝试在C#应用程序中设置登录表单。登录的选项之一是通过谷歌。为此,我将Oauth2文档用于已安装的应用程序: 除了同意屏幕外,所有操作似乎都正常工作。每次请求授权码时,我都会看到同意屏幕。对于已安装的应用程序,这是预期的吗?我使用以下参数: 重定向_uri=urn:ietf:wg:oauth:2.0:oob 响应类型=代码 我曾尝试将approval_prompt设置为auto,并尝试将access_type组合为offline和online,但仍然没有帮助 请注意,使用“Web应用程序”

我正在尝试在C#应用程序中设置登录表单。登录的选项之一是通过谷歌。为此,我将Oauth2文档用于已安装的应用程序:

除了同意屏幕外,所有操作似乎都正常工作。每次请求授权码时,我都会看到同意屏幕。对于已安装的应用程序,这是预期的吗?我使用以下参数:

重定向_uri=urn:ietf:wg:oauth:2.0:oob

响应类型=代码

我曾尝试将approval_prompt设置为auto,并尝试将access_type组合为offline和online,但仍然没有帮助

请注意,使用“Web应用程序”(使用不同的客户端id)的类似实验在我只看到一次同意屏幕的情况下效果良好

如有任何帮助/建议,将不胜感激


谢谢。

对于已安装的应用程序,您可以获得一个代码并将其转换为刷新令牌,然后存储刷新令牌。用户不需要反复登录。用户是退出应用程序还是您在某一时间后删除令牌


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

您是否保留刷新令牌并重新显示?“离线”不应该影响这一点——这与允许应用程序在用户未登录且不在场时工作有关。不应影响登录。我尝试尽可能长时间保留刷新令牌,并且能够长时间使用它。但是,为了支持多个用户,我有时会删除某个用户的刷新令牌,但希望在不经过同意屏幕的情况下重新获取该令牌。您能解释一下您要做什么吗?如果您删除了用户的刷新令牌,那么您希望再次获得同意-您没有提供您想要做的事情被允许的身份验证。因此,应该寻求同意。你为什么认为不应该?对。用户正在从应用程序“注销”,然后我删除刷新令牌。那么,对于已安装的应用程序,用户是否每次都必须通过同意屏幕?@user3933772-是的,因为他们已经给出了同意,然后你删除了它(刷新令牌)。只要你一直告诉服务机构你没有得到同意,你就需要再次寻求它。注销!=撤回同意。我想这是我的困惑,因为每次我试图获取“刷新令牌”时,“web应用程序”的相同序列不会显示同意屏幕。