【问题标题】:how to send code to node server from js file?如何从js文件向节点服务器发送代码?
【发布时间】:2018-07-28 16:02:01
【问题描述】:

我正在尝试在我的网站中进行谷歌身份验证,用户在页面上获得身份验证。身份验证后,它会生成一个包含access_tokenrefresh_token 的代码,我想将它发送到我的Node 服务器。

我知道Xhttp 是一种方法,但我想避免这种情况。
所以我尝试使用把手。但它们只适用于 html 对吗?

无论如何我可以使用helpers 之类的东西将我的代码发送到服务器吗?

我试图绕过一些帖子,例如:

我是 Node.js 的新手,所以有任何猜测或对文档的任何参考吗?

【问题讨论】:

  • 您使用 Ajax 从浏览器向服务器发送数据。在浏览器中,您可以使用XMLHttpRequest API 或更新的fetch() API。这是你的两个选择。
  • 是的,实际上我想避免XMLHttpRequest ,在上面的链接中,我刚刚发现RequireJS 也是一个选项。但我正在寻找一种方法,如果节点有一个内置的方法,而且我会看看fetch()
  • 为什么要避免使用 XMLHttpRequest?这就是 RequireJS 在里面使用的。节点是您的服务器。它与您如何将数据从浏览器发送到它没有任何关系。您必须使用浏览器内置的界面之一。 XMLHttpRequest 或 Fetch。听起来您并不真正了解浏览器和服务器之间发生了什么,这让我想知道您是否正确描述了您正在尝试做的事情。也许我们还不明白?
  • 如果你说的是在浏览器的网页中运行的 JS 文件,那么 node 根本与选择无关。您受到浏览器支持的限制。浏览器通过 webSocket 接口提供 http 请求(通过 XMLHttpRequest 或 fetch)或 webSocket 请求。选择一个。
  • 不确定您所说的易受攻击是什么意思?易受什么影响?互联网上的主要网页都使用 XMLHttpRequest。在基本协议级别,XMLHttpRequest、fetch 和 webSocket 都以 HTTP 请求开始。 XMLHttpRequest 和 fetch 只是发出请求和获取响应的不同接口(fetch 更现代一点)。 webSocket 导致 webSocket 协议上的持久连接,您可以长时间保持活动状态并通过它发送或接收数据。

标签: javascript node.js handlebars.js client-server helpers


【解决方案1】:

一种标准方法是在 Cookie 上设置访问令牌和刷新令牌,因此它将与每个 http 请求一起发送到后端,并且可以在服务器端(节点)提取,例如如果您使用 express:

var express = require('express');
var cookieParser = require('cookie-parser');

var app = express();
app.use(cookieParser());

这将使用由 cookie 名称作为键的对象设置 req.cookies。

另一种选择是使用 http Authorization 标头发送令牌。

【讨论】:

  • 所以,简而言之,用户进行身份验证,我得到了我将其设置为 cookie 的代码,然后我可以使用require('cookie-parser'); 模块获取代码对吗?
  • 是的。你得到命名 cookie 的值为 req.cookies.。例如,如果您的 cookie 名称是 access_token,您将通过 req.cookies.acess_token 获得该 cookie 的值。如快递文档中所述:expressjs.com/en/api.html#req.cookies
猜你喜欢
  • 2016-02-08
  • 1970-01-01
  • 2020-08-31
  • 2018-02-20
  • 2022-12-13
  • 2019-01-16
  • 2018-06-13
  • 2020-01-18
  • 2020-07-04
相关资源
最近更新 更多