【问题标题】:google identity services equivalent for googleUser.getBasicProfile()相当于 googleUser.getBasicProfile() 的 google 身份服务
【发布时间】:2022-10-25 08:59:29
【问题描述】:

我有一个反应应用程序,我正在尝试从使用 Google API Client Library for JavaScript 中的 gapi.auth2 模块迁移到 Google Identity Services Library。

使用 gapi.auth2 模块,您可以使用 googleUser.getBasicProfile() 获取登录用户的基本个人资料信息。以下代码是您使用 Google 身份服务库登录用户的方式。

登录.js

function Login(){
    var tokenClient;
    var access_token;

    function getToken(){
        tokenClient.requestAccessToken();
    }

    function initGis(){

        tokenClient = window.google.accounts.oauth2.initTokenClient({
            client_id: '********.apps.googleusercontent.com',
            scope: 'https://www.googleapis.com/auth/books',
            callback: (tokenResponse) => {
                access_token = tokenResponse.access_token;
            },//end of callback:
            
        });
    }

    useEffect(()=>{
        initGis();
        getToken();  
    });

    return (
        <>
        <p>Logging in...</p>
        </>             
    )
}

export default Login;

使用 Google 身份服务库时如何获取用户的基本个人资料信息?

【问题讨论】:

  • 你有一个具体的问题吗?
  • @库珀对不起。我问的问题有什么不具体的地方?使用 Google 身份服务库登录用户时,如何获取用户的基本信息?
  • 对我们中的许多人来说,困难在于我们通常可能只涵盖所选标签的一个子集。就我而言,我只对处理谷歌应用脚​​本问题感兴趣,所以从我的角度来看,你的问题很广泛。但我会考虑你的反对意见,我会努力做得更好。

标签: authentication google-api google-identity


【解决方案1】:

在讨论了 Discord 之后,一位非常有帮助的用户解释说它只能在服务器端完成。所以简单的答案是它不能在客户端使用谷歌身份服务库完成

【讨论】:

    【解决方案2】:

    让我保持这个答案简短。? 一旦你得到 access_token 只需调用以下函数:

    const getUserProfileData = async (accessToken: string) => {
      const headers = new Headers()
      headers.append('Authorization', `Bearer ${accessToken}`)
      const response = await fetch('https://www.googleapis.com/oauth2/v3/userinfo', {
        headers
      })
      const data = await response.json();
      return data;
    }
    

    PS:[不幸]我也在努力迁移到谷歌身份服务库。 ?

    【讨论】:

      【解决方案3】:

      将我的网络应用程序迁移到 Google 身份服务时,我遇到了同样的问题。我通过使用 Google Drive “About:get” API 解决了这个问题,并请求了“user”字段。这将返回用户的 displayName 和 emailAddress(以及其他一些实际上不是很有用的数据)。我使用 drive.readonly 范围。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-23
        • 1970-01-01
        • 2022-07-20
        • 2020-02-29
        • 2018-03-10
        • 1970-01-01
        • 2022-09-29
        • 2022-01-07
        相关资源
        最近更新 更多