如何将我的Instagram访问令牌从我的Express服务器发送到React客户端?

时间:2017-05-31 06:24:27

标签: reactjs express authentication oauth-2.0 jwt

我在不同的端口上运行了2个不同的应用程序。 1是React客户端,另一个是Express服务器。服务器非常简单,它只是从Instagram接收代码并发出一个post请求来获取访问令牌。

我获得了访问令牌但我想将其发送回客户端以便它可以使用它。但客户端不向服务器发出请求。

流程就是这样。

客户 - >按按钮验证用户

render() {
    return (
      <div>
        <button onClick={() => {
          window.open('https://api.instagram.com/oauth/authorize/?client_id=ID&redirect_uri=http://localhost:8000&response_type=code', '_blank')
        }}>Authenticate</button>
      </div>
    )
  }

然后服务器收到代码

router
.get("/", (req, res) => {
  if (req.query.code !== 'undefined') {
    axios.post('https://api.instagram.com/oauth/access_token', querystring.stringify({
      'client_id': '6',
      'client_secret': 'e',
      'grant_type': 'authorization_code',
      'redirect_uri': 'http://localhost:8000',
      'code': req.query.code
    }))
    .then(response => {
      console.log(response.data)
    })
    .catch(error => {
      console.log(error)
    })
  }
})

我的。然后回复收到经过身份验证的对象,但现在我被卡住了。如何在客户端中使用经过身份验证的对象?如何将其发回客户端?我应该寄回去吗?

我的客户端正在端口8080上运行

我更愿意在我的客户端进行所有api调用,因为这就是我所知道的。我不知道表达得很好,宁愿只使用我所知道的React / Redux。

1 个答案:

答案 0 :(得分:0)

您需要做的就是在回复中发送数据。

为此你需要写

res.send(response.data);