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

在ReactJS项目中使用Gmail API OAutho2身份验证

东门宜
2023-03-14

我正试图从登录的用户那里获取电子邮件。使用https://www.googleapis.com/gmail/v1/users/userid/messages。我在AJAX调用中将access_token,scope作为头传递。但我得到了

“错误”:[{“域”:“全局”,“原因”:“autherror”,“消息”:“无效凭据”,“位置类型”:“标头”,“位置”:“授权”}],“代码”:401,“消息”:“无效凭据”}}

这是我的组件,我试图在其中获取邮件

    componentDidMount() {
>                 const user_mail_id = localStorage.getItem('user_mail_id');
>                 const access_token = localStorage.getItem('access_token');
>                 console.log(access_token);
>                 var config = {
>                     headers: {
>                         'Authorization': "BEARER " + access_token,
>                         "Accept": "application/json",
>                         "scope": "https://mail.google.com/ 
                           https://www.googleapis.com/auth/gmail.modify
>                          https://www.googleapis.com/auth/gmail.readonly"
>                     },
>                 }
>                 // console.log(user_mail_id);
>                 axios.get('https://www.googleapis.com/gmail/v1/users/' +
>                     user_mail_id
>                     + '/messages/', config)
>                     .then(function (response) {
>                         console.log(response);
>                     })
>                     .catch(function (error) {
>                         console.log(error);
>                     });`enter code here`
>             }

共有1个答案

池阳伯
2023-03-14

无效凭据意味着您正在使用的客户端id无效。您创建的凭据类型错误,或者您正在使用具有错误凭据的文件。

转到google developer console并再次下载凭据文件。您可能已经创建了浏览器凭据

 类似资料:
  • 我有一个问题与Spring开机的安全。我想要的是在Spring Boot中同时对同一个项目有两个不同的身份验证。一个是SSO(keycloak authentication),用于除'/download/export/*'之外的所有路径,另一个是Spring Boot basic authentication。下面是我的配置文件: 上面代码的问题是:如果我请求url'/download/expor

  • 问题内容: 在我的iOS应用程序中,我想使用WKWebView在应用程序中包装外部URL 。此URL需要基本身份验证(它需要用户和密码凭据,如以下屏幕截图所示)。 经过一番调查,我尝试使用 didReceiveAuthenticationChallengemethod来启用自动 登录,因此我不了解它的工作原理。 这是我的代码。 I’m facing with this exception: If

  • 我想构建一个API路由,经过身份验证的用户和未经身份验证的用户都可以调用该路由,并根据用户是否经过身份验证返回数据。 我卡在使用身份验证::检查()。 控制器的功能是这样的: 我最后有两个场景: 情景1 在这种情况下,在控制器中,当我检查Auth::check()在if条件内时,无论用户是否经过身份验证,我总是得到错误条件。 方案 2 在这种情况下,在控制器中,当我检查Auth::check()时

  • 我是Spring Security的新手 我有Sprint Boot Rest API项目,它公开了某些API。我已经为所有API实现了基于承载令牌的身份验证。例如 /user、 /resource、 /appointment 现在,对于特定控制器的几个api,我希望实现基本身份验证。这些API将被另一个不公开的服务使用。为了保证API的安全性,我希望为这些apis提供基本身份验证。例如 /int

  • 问题内容: 我目前有一个Palm WebOS应用程序,该应用程序使用Ajax.Request通过基本身份验证连接到Web服务。要发送用户名和密码,我只需将其包含在url(即http:// username:password @ ip-address:port / )中即可,效果非常好,期望密码包含字母数字字符以外的任何字符(例如, ,最近有一个用户给我发送电子邮件,该用户的密码中包含“ @”和“&

  • 我们已经将原生IOS和Android应用程序发布到商店。目前即将完成 react-native 版本以取代本机应用程序。React-native 应用程序使用与本机相同的 firebase 项目。Firebase 身份验证适用于原生应用和 React-原生Android应用。在 react-native ios 上,我们无法使用 google 登录。 错误日志: 发生内部错误,请重试。Native