身份验证后,Aibo API 未重定向到我的重定向 uri

时间:2021-02-16 05:50:48

标签: javascript api sony

我正在尝试创建一个 aibo 可链接的应用程序。我有一个 node.js/express 应用程序正在运行,当我收到对“/”的请求时,我使用适当的参数重定向到 aibo 身份验证端点。当我访问我的站点时,它会正确显示 SONY 登录页面,我可以使用我的电子邮件和密码登录,但它会将我带到 myaibo.aibo.com 站点,而不是重定向到我的“/auth”端点。

这是我正在做的事情的一小段:

const CLIENT_ID = process.env.AIBO_CLIENT_ID;
const CLIENT_SECRET = process.env.AIBO_CLIENT_SECRET;
const REDIRECT_URI= 'https://aibo.jonfleming.net/auth';

app.get('/', (req, res, next) => {
  if(!req.session.authenticated) {
    req.session.state = randomGenerate(12);
    const url = `https://myaibo.aibo.com/account_link.html?state=${req.session.state}&` +
    `client_id=${CLIENT_ID}&scope=pub&redirect_uri=${REDIRECT_URI}&response_type=code`;

    res.redirect(url);
  } else {
    next();
  }
});

app.get('/auth', (req, res) => {
  const code = req.query.code;
  const state = req.query.state;

  if (state === req.session.state) {
    // request access token
    // get deviceId
    // update header
    req.session.authenticated = true;
    res.send('Connected');
  }
});

'/auth' 端点永远不会被命中。

我还尝试显示一个可点击的链接来代替 res.redirect(url)。

res.send(`<html><body><a href="${url}">Sign In</a></body></html>`);

点击链接的结果相同。它会将我带到登录页面,但永远不会重定向回我的应用。

0 个答案:

没有答案