gpt4 book ai didi

node.js - 尽管提示没有值(value),谷歌身份验证总是要求授权

转载 作者:搜寻专家 更新时间:2023-10-31 22:53:27 24 4
gpt4 key购买 nike

从 Google OAuth 连接用户后,如果该用户希望在下一次需要选择其 google 帐户的 session 中重新连接,则会再次请求权限。

根据documentation ,负责授权请求的参数prompt的行为如下:

If no value is specified and the user has not previously authorized access, then the user is shown a consent screen.

因此,用户不必重新订购他的同意(通过验证,该应用程序存在于我的授权中)。

设想的唯一答案是关于这个问题的答案:login with google always asks user consent

因为我也在没有安全 HTTP 的情况下在本地工作,但他假设存在 cookie 策略,但事实并非如此。

代码生成网址

/**
* Create a new OAuth2Client with the credentials previously loads
*/
private getOAuth2() : OAuth2Client {
return new OAuth2(
this.credentials.client_secret,
this.credentials.client_id,
this.credentials.redirect_uris[0]
);
}

/**
* Create connection URL for the given scopes
* @param scopes
*/
public url(scopes: Array<string>) : string {
return this.client.generateAuthUrl({
access_type: "offline",
scope: scopes
});
}



// The scope used to generate URL is 'https://www.googleapis.com/auth/youtube.readonly'

// this.client refer to a client which is load by getOAuth2
// and use only for the generation of URL's.

用户第二次登录时,获取丢失的refresh token,无需再次同意:

enter image description here

这就是发生的问题。

最佳答案

TBH,我没有清楚地理解你的问题。但是,我确定您必须处理两个不同的 token 。由于它是 OAuth,首先您会在用户身份验证成功后从 Google 获得访问 token 。

您应该使用该访问 token 从 Google 获取用户信息。但是默认情况下,访问 token 有一些过期时间,超过该时间用户必须重新授权您的应用程序。我怀疑你的情况就是这样。

您可以通过使用刷新 token 来更新您的访问 token ,您将在获得用户同意后获得该 token 。

您可以在我写的这篇博文中获得详细信息,https://www.syncwithtech.org/authorizing-google-apis/

我希望这能以某种方式帮助你。

关于node.js - 尽管提示没有值(value),谷歌身份验证总是要求授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52083196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com