当前位置: 首页 > 知识库问答 >
问题:

谷歌认证总是要求授权,尽管提示没有价值

越信鸥
2023-03-14

在从Google OAuth连接用户后,当这个用户希望在下一个需要选择他的Google帐户的会话中重新连接时,会再次请求许可。

根据文档,负责授权请求的参数提示符的行为如下:

如果没有指定值,并且用户以前没有授权访问,则会向用户显示一个同意屏幕。

/**
 * 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.

这就是发生的问题。

共有1个答案

充子航
2023-03-14

TBH,我没搞清楚你的问题。但是,我敢肯定,您必须处理两个不同的代币。由于是OAuth,首先您将在成功的用户身份验证后从Google获得访问令牌。

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

您可以使用refresh令牌续订您的访问令牌,当您得到用户的同意时,您将获得refresh令牌。

 类似资料:
  • 我收到了明显臭名昭著的apache 2禁止错误#403,我尝试遵循有关该主题的指南,但似乎都不起作用。我使用的是Ubuntu Server和Apache 2.4.41 我的网站结构类似于/var/www/html/index.html 我的apache2.conf[/etc/apache2/apache2.conf]: 我的vhosts.conf[/etc/apache2/站点可用/000-def

  • Serenity 使用一些抽象(abstractions)来与你的应用程序自身的用户身份验证和授权机制一起工作。 Serenity.Abstractions.IAuthenticationService Serenity.Abstractions.IAuthorizationService Serenity.Abstractions.IPermissionService Serenity.Abst

  • 请求地址 https://api.es.xiaojukeji.com/river/Auth/authorize 返回数据格式 JSON 请求方式 POST 是否需要登录 否 访问授权限制 调用方访问授权后,将返回的授权信息缓存半小时(缓存过期或调用服务时返回401=>access_token不合法或已过期,再重新申请授权),不要每次调用接口都申请一次授权。 请求参数 名称 类型 必选 描述 cli

  • 说明 调用方访问授权后,将返回的授权信息缓存半小时(缓存过期或调用服务时返回401=>access_token不合法或已过期,再重新申请授权),不要每次调用接口都申请一次授权。 地址URL /v1/Auth/authorize 支持格式 Json或普通form HTTP请求方式 POST 是否需要登录 否 请求参数 名称 类型 必选 描述 client_id string yes 申请应用时分配的

  • 我有一个具有统一访问控制的Google云存储桶,我在权限中添加了“诱惑者”。它说该对象是公共的,但当我尝试打开链接时,仍会收到此消息:“匿名调用方没有storage.objects.get access to the Google Cloud storage object”错误代码为“401”。我希望任何用户都能够访问该链接。我该怎么做?提前谢谢! 向你问好本

  • 问:什么是认证(authentication)? 认证是为了解决"你是谁"的问题。 问:什么是授权(authorization)? 授权是为了解决"你是否有权限"的问题,只有在认证通过之后,才会进行权限检查。 问:SDS是如何认证的? SDS采用了融合云/生态云平台的认证方式,和平台上其他服务相同。 问:融合云SDS是如何认证的? 融合云有org/team/user三个概念,org是资源(表)的拥