Angularjs 为什么基于令牌的身份验证更适合单页应用程序?
好吧,这可能是一个非常幼稚或幼稚的问题,但我试着在互联网上搜索,只有在没有找到任何有成效的东西后才求助于堆栈溢出。我一直在阅读关于基于令牌的身份验证以及基于Cookie的身份验证的文章。我认为基于令牌的身份验证更适合于单页web应用程序,但我无法清楚地理解原因。我将使用nodejs和angularjs来实现同样的功能。SPA通常有很多面:登录视图、注销视图或受限视图。这都是关于访问控制的。您的用户都获得了相同的应用程序,但他们可能没有相同的访问级别。您将发现自己正在为前端和后端构建访问控制逻辑 因为令牌包含所有这些信息,所以它们是非常可移植的:UI和后端可以使用它们来做出决策。您可以将它们与合作伙伴服务共享,作为构建单一登录服务的一种方式,将用户委托给正确的应用程序 希望此链接能为您提供更多信息Angularjs 为什么基于令牌的身份验证更适合单页应用程序?,angularjs,node.js,token,jwt,single-page-application,Angularjs,Node.js,Token,Jwt,Single Page Application,好吧,这可能是一个非常幼稚或幼稚的问题,但我试着在互联网上搜索,只有在没有找到任何有成效的东西后才求助于堆栈溢出。我一直在阅读关于基于令牌的身份验证以及基于Cookie的身份验证的文章。我认为基于令牌的身份验证更适合于单页web应用程序,但我无法清楚地理解原因。我将使用nodejs和angularjs来实现同样的功能。SPA通常有很多面:登录视图、注销视图或受限视图。这都是关于访问控制的。您的用户都获得了相同的应用程序,但他们可能没有相同的访问级别。您将发现自己正在为前端和后端构建访问控制逻辑
SPA往往有许多面:登录视图、注销视图或受限视图。这都是关于访问控制的。您的用户都获得了相同的应用程序,但他们可能没有相同的访问级别。您将发现自己正在为前端和后端构建访问控制逻辑 因为令牌包含所有这些信息,所以它们是非常可移植的:UI和后端可以使用它们来做出决策。您可以将它们与合作伙伴服务共享,作为构建单一登录服务的一种方式,将用户委托给正确的应用程序 希望此链接能为您提供更多信息 我猜,对于基于令牌的身份验证以及基于Cookie的身份验证,您的意思是令牌身份验证与会话身份验证,因为令牌可以存储在Cookie中 看
- 通过基于会话的身份验证,服务器为每个连接的用户维护一个会话。客户端使用其凭据进行身份验证,并接收会话id(可存储在cookie中),并将其附加到每个后续传出请求。因此,这可以被视为“令牌”,因为它相当于一组凭证。这种方法需要大量的服务器资源
- 基于令牌的身份验证是无状态的,不需要服务器存储,因为颁发的令牌(主要使用JWT)包含相关用户信息,并使用服务器私钥签名,因此不可伪造。令牌存储在客户端(cookie、localStorage等),附加到每个请求并由服务器验证。令牌也适用于不需要维护每个请求之间状态的RESTAPI
- 通过基于会话的身份验证,服务器为每个连接的用户维护一个会话。客户端使用其凭据进行身份验证,并接收会话id(可存储在cookie中),并将其附加到每个后续传出请求。因此,这可以被视为“令牌”,因为它相当于一组凭证。这种方法需要大量的服务器资源
- 基于令牌的身份验证是无状态的,不需要服务器存储,因为颁发的令牌(主要使用JWT)包含相关用户信息,并使用服务器私钥签名,因此不可伪造。令牌存储在客户端(cookie、localStorage等),附加到每个请求并由服务器验证。令牌也适用于不需要维护每个请求之间状态的RESTAPI
还请注意,如果应用程序位于服务器所在的同一域中,则仅具有基于会话的身份验证的SPA会将cookie附加到传出请求上,不要将链接作为答案,因为内容可能会改变,读者必须努力理解链接如何回答问题。如果你认为一个链接可能有帮助,总结一下,把它和问题联系起来,当然,把链接贴出来。一般来说,我会回顾我的回答,因此,不要将链接作为答案,因为内容可能会发生变化,读者必须努力理解链接如何回答问题。如果你认为一个链接可能有帮助,总结一下,把它和问题联系起来,当然,把链接贴出来。我会复习我的答案