Node.js中控制身份验证过程的方法

Node.js中控制身份验证过程的方法,node.js,authentication,Node.js,Authentication,我试图构建一个API来控制Node.js中的用户身份验证过程,只是为了锻炼自己,但我对Node.js环境中可用的资源不是很熟悉 问题是:我可以用什么来识别用户?我现在唯一能想到的就是饼干,但那似乎不太安全,伊姆霍。我想也许http请求中有一些变量我可以使用 我不希望您列出为我处理身份验证的JS库。我想自己尝试构建一个。您可以实现自己的代码作为练习,但代码用于建立身份验证的机制应该完全符合行业中现有的常见做法。具体来说,您应该使用会话cookie,它需要具有许多非常特定的属性才能确保安全。对于大多

我试图构建一个API来控制Node.js中的用户身份验证过程,只是为了锻炼自己,但我对Node.js环境中可用的资源不是很熟悉

问题是:我可以用什么来识别用户?我现在唯一能想到的就是饼干,但那似乎不太安全,伊姆霍。我想也许http请求中有一些变量我可以使用


我不希望您列出为我处理身份验证的JS库。我想自己尝试构建一个。

您可以实现自己的代码作为练习,但代码用于建立身份验证的机制应该完全符合行业中现有的常见做法。具体来说,您应该使用会话cookie,它需要具有许多非常特定的属性才能确保安全。对于大多数web流量,Cookie与许多其他最佳实践(https、服务器强化、安全补丁等)相结合是足够安全的。为了增强安全性,这通常与重要操作(亚马逊、雅虎)、双因素身份验证(谷歌、github等)、欺诈检测启发式(facebook、银行等)之前的额外密码提示相结合。正如您所说,cookie正是“http请求中的变量”。

如果这真的是一个学习练习,那么,研究其他被广泛接受的进行node auth的库是如何做事情并从中学习的可能是值得的。使用最广泛的库是,但是NPM搜索并显示了许多您可以学习的模块。您很可能会在身份验证后使用过期的安全cookie作为识别特定浏览器的手段。@jfriend00很可能是。但我真的很想了解它们是如何工作的,以及它们到底做了什么,我认为这是一个很好的方法。也许我应该看看一些深入解释身份验证的文章,我不理解你的评论。了解常见最佳实践是什么的方法是研究最常用的库做什么,或者通过研究它们的开放源代码,或者通过查找相关文章讨论如何工作。如果,一旦您了解了您所追求的体系结构,您希望将自己的实现作为进一步的学习练习,那就好了。但是,重要的第一步是在尝试发明自己的实现之前研究当前的最佳实践。我更准确地考虑了
req
(第一个参数)中的一个变量,该变量由
http.createServer()
提供给回调函数。是的,这就是会话cookie。这是一个HTTP头。服务器在响应中使用
set Cookie
头设置该值,浏览器在请求
Cookie
头中返回该值,该值在节点回调中作为
req.headers['Cookie']
可用。