当前位置: 首页 > 网络应用技术

node.js-身份身份验证

时间:2023-03-06 01:13:37 网络应用技术

  今天的第一个内容讨论了Web开发模式。今天基本上是身份认证的内容。我们的网络开发模式分为两种类型。一个是服务器渲染模式。将HTML页面缝制,然后直接返回客户端。这样,我们不需要我们的Ajax,只需直接给客户。他的优势是前端是什么。这是什么问题,他也有利于SEO优化。他的缺点是占用服务器资源,并且不利于前端分离的低效率。

  第二种模式:前端分离模式,取决于广泛使用的AJAX。后端负责编写API界面,而前端负责调用接口。他的优势之一是,开发体验毕竟是好的,毕竟是前后 - 端 - 端分隔,以及用户体验,用户体验,它还降低了服务器的压力。

  但是缺点是它不利于SEO的优化。

  然后我们输入身份身份验证,

  身份认证是什么?

  通过某种手段确认用户状态。

  服务器渲染开发是会话认证,我们的前端分离是JWT认证。两者都有自己的优势。

  让我们先谈谈会议

  首先,了解HTTP不是状态,这意味着客户的HTTP请求每次都独立,并且在多个请求之间没有直接关系。

  突破没有状态限制。

  超市中突破此限制的方法是将成员卡发送给每个成员。在我们的网络字段中,此方法是cookie。

  cookie是一个不超过用户浏览器的4KB的字符串,即名称,值和有效性。安全,可选的属性属性组成,适用范围,在不同的域名下,我们的cookie是独立的。每当客户端启动请求时,当前域名下的所有cookie都将发送到服务器。请注意,它只是当前域名

  他的特征是:自动发送,独立域名,过期的时间限制,4KB限制

  Cookie在身份身份验证中的作用

  当我们的客户端首次请求服务器时,服务器通过响应标头向客户端发送身份身份验证的cookie,我们的浏览器将存储此cookie。当我们要求下一个请求时,我们将直接进行。保留此cookie是在证明身份之前将自动发送上述曲奇。

  应该注意的是,我们的cookie不安全。浏览器还提供用于阅读和写作cookie的API,因此cookie很容易伪造,就像我们的会员卡也被伪造一样。因此,请勿使用cookie存储重要数据,包括以后无法存储的JWT。

  那么,有没有办法提高我们的cookie安全性?

  那就是会话认证,就像我们的会员卡?滑动卡机制打破伪造卡一样。

  会话认证机制:

  首先,我们的客户端登录帐户密码发送登录请求。服务器将开始验证。当验证成功时,它将存储在服务器的内存中。将在当前域名下保存此字符串。当我们再次要求时,我们将发送域名下的所有cookie将服务器发送在一起,并且服务器将找到正确的cookie匹配。认证成功

  3.3

  说了很多之后,如何来到服务器使用我们的Sesson,首先安装导入并导入两个部分,然后需要配置。请注意,配置是一种固定的写作方法,秘密可以是任何字符串的字符串。

  配置后,您可以使用Req.Session访问会话对象,使用Sessin存储一些数据,然后成功登录并可以通过会话取出。当我们退出登录时。销毁方法是空的,以清除会话。请注意,它只是清空此帐户信息,不会清空他人的信息。特定代码如下:

  注意我们想做的事情

  去

  这是会话。然后,我们看到下一个身份验证机制JWT。会议需要Cookie才能实现它,但是我们的Cookie有一个致命的问题,不支持交叉域。如果涉及交叉域,则需要配置许多步骤。

  JWT是目前最受欢迎的交叉域认证解决方案。

  实施原则:首先,客户端启动请求标题以发送帐户密码,服务器验证以及验证成功后,将加密令牌字符串,然后返回到localStorage或sessionstorage,当我们再次问,我们将通过授权请求标题将令牌发送到服务器。服务器将将他还原到用户的信息对象,然后身份将成功。

  组件的三个部分:header.patyload.signature,这只是一个拆分效果。我们的真实信息集中在中间有效载荷之前和之后的两个只是为了确保令牌的安全性。

  如何在Express中使用我们的令牌?

  您需要安装两个袋子,并且需要定义按照自己的定义定制的钥匙

  第四步是生成字符串时的符号方法。此配置在可以在指定期间内验证的令牌时有效;

  第五步是将JWT转换为JSON语句。除非语句意味着不需要身份验证的接口

  配置配置后,第五步将转换为JSON文件,我们可以使用req.user获取信息,此信息是我们在第四步中转换为JWT字符串的信息。

  最后,当我们的令牌到期或非法时,会出现错误。此时

  去

  然后,背面将有两个项目,这将整合我以前学到的节点。我将开设一个博客来谈论它。仍然有一些预防措施。