401令牌无效 - AuthSub令牌的范围错误

时间:2017-09-19 10:30:27

标签: reactjs ruby-on-rails-5 google-contacts

我有应用程序的反应,从那里我正在验证谷歌用户 并返回access_token,我将该访问令牌传递给rails API。

现在我在轨道上使用get google contacts下面的代码。

 contacts_josn = JSON.parse(open("https://www.google.com/m8/feeds/contacts/default/full?access_token="+params[:access_token]+"&alt=json").read)

但它给我的错误

#<OpenURI::HTTPError: 401 Token invalid - AuthSub token has wrong scope>

更新: 建议的答案与我的问题不同,我使用的是谷歌联系人API。

任何建议都将受到赞赏:)

1 个答案:

答案 0 :(得分:0)

我解决了问题,这是access_token

中的范围问题

当我从react生成access_token时,我没有给出任何范围。从后端我使用access_token来获取联系人

所以我做的是

In react

<GoogleLogin
        className="pull-right btn btn-orange add-new-btn"
        clientId={process.env.REACT_APP_GOOGLE_CLIENT_ID}
        scope="email https://www.google.com/m8/feeds/"
        buttonText="Import google contacts"
        onSuccess={this.responseGoogle}
        onFailure={this.responseGoogle}
      >

为电子邮件访问添加了范围email,为管理联系人添加了https://www.google.com/m8/feeds/

在Rails一侧

contacts_josn = JSON.parse(open("https://www.google.com/m8/feeds/contacts/default/full?max-results=50&alt=json", "Authorization" =>  "Bearer #{params[:access_token]}", "GData-Version" => "3.0").read)

现在这将返回联系人列表。