为啥基于令牌的身份验证更适合单页应用程序?
Posted
技术标签:
【中文标题】为啥基于令牌的身份验证更适合单页应用程序?【英文标题】:Why is token based authentication better for Single Page Applications?为什么基于令牌的身份验证更适合单页应用程序? 【发布时间】:2017-12-03 04:30:22 【问题描述】:好的,所以这可能是一个非常菜鸟或幼稚的问题,但我尝试搜索互联网并在没有找到任何成果后才诉诸堆栈溢出。我一直在阅读有关基于令牌的身份验证以及基于 Cookie 的身份验证的信息。我发现基于令牌的身份验证更适合单页 Web 应用程序,但无法清楚地理解原因。我将使用 nodejs 和 angularjs 来完成同样的工作。
【问题讨论】:
看看它是否对你有帮助 - ***.com/questions/44825060/… 【参考方案1】:我猜基于令牌的身份验证以及基于 Cookie 的身份验证您的意思是 令牌身份验证与会话身份验证,因为令牌可以存储在 cookie 中
见this
使用基于会话的身份验证,服务器为每个连接的用户维护一个会话。客户端使用其凭据进行身份验证并接收 session_id(可以存储在 cookie 中)并将其附加到每个后续传出请求。所以这可以被认为是一个“令牌”,因为它相当于一组凭据。这种方法需要大量的服务器资源 基于令牌的身份验证是无状态的,不需要服务器存储,因为颁发的令牌(主要使用JWT)包含相关的用户信息并使用服务器私钥签名,因此不可伪造。令牌存储在客户端(cookie、localStorage 等),附加到每个请求并由服务器验证。令牌也适用于不需要维护每个请求之间状态的 REST API基于表单的应用程序使用基于会话的身份验证,而 SPA 由于其固有的优势经常使用基于令牌的身份验证。
另请注意,只有当应用程序与服务器位于同一域中时,具有基于会话的身份验证的 SPA 才会将 cookie 附加到传出请求中
【讨论】:
【参考方案2】:SPA 往往有很多面孔:登录视图、注销视图或受限视图。这都是关于访问控制的。您的用户都获得了相同的应用程序,但他们可能没有相同级别的访问权限。您会发现自己正在为前端和后端构建访问控制逻辑。
因为令牌包含所有这些信息,所以它们非常便携:您的 UI 和后端可以使用它们来做出决策。您可以与合作伙伴服务共享它们,以此构建单点登录服务,将用户委派给正确的应用程序。
希望这个链接能给你更多的信息..
Token Based Authentication for Single Page Apps (SPAs)
【讨论】:
通常在 SO 中,不要将链接作为答案,因为内容可能会发生变化,读者必须努力了解链接如何回答问题。如果您认为某个链接可能有帮助,请对其进行总结,将其与问题联系起来,当然,发布链接 好的。我会检查我的答案以上是关于为啥基于令牌的身份验证更适合单页应用程序?的主要内容,如果未能解决你的问题,请参考以下文章