You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过@react-oauth-google获取用户姓名、邮箱及头像信息?

解决@react-oauth-google获取用户姓名、邮箱和头像的问题

你看到的credential字段是一个JWT(JSON Web Token)令牌,用户的姓名、邮箱、头像等核心信息都加密存储在这个令牌里,需要解析后才能提取出来。下面是具体的解决步骤:

步骤1:安装JWT解析库

推荐使用jwt-decode库来解析令牌,避免手动解析的潜在错误。在项目终端执行安装命令:

npm install jwt-decode
# 或使用yarn
yarn add jwt-decode

步骤2:修改代码解析令牌

更新你的组件代码,导入jwt-decode并在登录成功后解析credential字段:

import './App.css';
import React from 'react';
import { GoogleOAuthProvider } from '@react-oauth/google';
import { GoogleLogin } from '@react-oauth/google';
import jwtDecode from 'jwt-decode'; // 导入JWT解析库

function App() {
  const clientId = "你的Client Id";
  
  const showUserInformation = (response) => {
    // 解析credential令牌,获取用户完整信息
    const userInfo = jwtDecode(response.credential);
    console.log('完整用户信息:', userInfo);
    
    // 提取需要的字段
    const { name, email, picture } = userInfo;
    console.log('姓名:', name);
    console.log('邮箱:', email);
    console.log('头像地址:', picture);
  }

  return (
    <div className="App">
      <GoogleOAuthProvider clientId={clientId}>
        <GoogleLogin
          onSuccess={showUserInformation}
          onError={() => {
            console.log('Login Failed');
          }}
        />
      </GoogleOAuthProvider>
    </div>
  );
}

export default App;

解析后可获取的核心字段说明

解析JWT后,你能直接拿到的常用用户字段包括:

  • name:用户全名
  • email:用户绑定的邮箱
  • picture:用户头像的URL地址
  • given_name:用户的名字(不含姓氏)
  • family_name:用户的姓氏

注:只要你的Google OAuth客户端配置了正确的权限范围(默认创建客户端时已包含基础信息权限),这些字段都能正常获取。

内容的提问来源于stack exchange,提问作者gsharew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 10:55:14