首页 > 解决方案 > 成功登录后如何将用户重定向到外部登录页面并获取响应代码

问题描述

我有一个链接,当点击返回登录页面的 HTML 时。

https://somelink.com/oauth/authorize?client_id=someclientid&redirect_uri=http://localhost:3000/callback&response_type=code

在浏览器上呈现此 HTML 后,用户输入他的用户名并被重定向到用户输入密码的另一个页面。( https://dev.login.com )

成功登录后,用户被重定向到回调 uri http://localhost:3000/callback?code="somecode"。我需要此代码来进一步请求获取访问令牌和刷新令牌。

那么我应该如何进行呢?我使用的技术栈是 React 和 Nodejs with Express。我通过向第一个 url 发出 get 请求然后呈现响应在 Node 中尝试了这个

const options = {
    url: "https://somelink.com/oauth/authorize?client_id=someclientid&redirect_uri=http://localhost:3000/callback&response_type=code",
    method: 'GET',
    headers: {
      'Content-Type': 'application/json',
    },
  };
  await axios(options)
    .then((response) => {
      console.log('success');
      res.send(response['data']);
    })
    .catch((error) => {
      console.log(error);
    });

使用来自 get 请求的res.send(response["data"])HTML 响应打开网页。输入用户名后,它会在 /authorize 页面而不是实际的密码输入页面上发出发布请求。我为 /authorize 创建了一条路线,但不确定我应该在其中包含什么

我应该如何进行?我应该使用 React 来提出请求吗?

标签: javascriptnode.jsreactjsoauth-2.0axios

解决方案


推荐阅读