【问题标题】:Meteor: Get query parameters from url on server? Use case Instagram oAuthMeteor:从服务器上的 url 获取查询参数?用例 Instagram oAuth
【发布时间】:2017-04-29 06:54:03
【问题描述】:

使用客户端路由器或客户端上的 JS 很容易做到这一点。但是由于 window 不是服务器上的对象,如何获取查询参数甚至从服务器读取 url?我检查了节点示例,但找不到任何与表达 js 无关的内容。

我的用例是 Instagram,它向我发回需要在服务器上读取的代码,然后我从服务器发送带有该代码的 http 请求以检索访问令牌。

必须在页面加载,而不是加载然后通过客户端发送到服务器。

基本上我想在服务器上检索“代码”http://localhost:3000/?code=5e04c2e304f24f8b8380c2ec81202139的查询。

【问题讨论】:

  • 你在用 Meteor 吗?
  • 是的,抱歉,忘了说,更新中

标签: javascript node.js meteor


【解决方案1】:

看了Instagram instruction for authentication,看来你使用的是Server-side flow。我不知道您为什么选择这个而不是似乎更合适的客户端身份验证流程,我认为您应该重新考虑使用哪种方法。无论如何,要回答您的问题,您可以使用 WebApp 包在 Meteor 中定义服务器路由:

WebApp.connectHandlers.use("/", function(req, res, next) {
  if (req._parsedUrl.pathname === '/') {
    const code = req.query.code;
    console.log(code);

    // get ACCESS_TOKEN with code

    // if you need to redirect user after authorization
    // res.writeHead(302, {
    //   Location: '/route/after/authorization'
    // });
    // res.end();
  }

  // comment this if you redirect to another route
  next();
});

【讨论】:

  • 这是根据要求提出的要求,这就是我选择服务器端流程的原因。我会尽快尝试一下,如果成功的话。我会接受。感谢您提前做出的努力。真的很酷,我以前从未见过流星文档的那部分。
猜你喜欢
  • 2016-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多