角度 – 前端框架世界中的认证
我的问题是关于登录今天的前端世界:
在旧的服务器端呈现方式 – 我将在后端验证用户登录并呈现适合登录用户的整个html页面. 但现在有了前端框架 – 我第一次进入网站时给用户所有可能的页面,然后在他的浏览器中为他呈现正确的页面. 据我所知现在 – 在前端框架中登录用户,我需要在localStorage中保存一个变量,表明他已经过身份验证(甚至可能是管理员的角色),这样我就是构建页面我只需要询问这个变量是否在localStorage中,以了解用户是否已登录,如果他的角色是admin,如果两者都是真的,我会向他展示所有管理功能 但是,这意味着如果我是黑客 – 我需要做的就是手动将此变量添加到我的localStorage,然后我将看到整个管理功能. 这让我想到了我的问题 – 解决方法
虽然您可以将特定于经过身份验证的用户的页面作为单页面应用程序的一部分提供,但您不会提供数据.因此,用户可能会破解网站以查看仅限管理员的页面并获取布局,但内容将丢失.
将向服务器单独请求受保护数据,并且只有在用户具有所需权限时才会返回安全内容.然后将其插入页面,例如使用Ajax. 服务器有很多方法可以检查客户端是否经过身份验证.最简单的方法是在每个请求中传递用户名和密码.您提到的本地存储中的变量可以存储用户名和密码,以便可以使用每个HTTP请求引用它.实际上你不会这样做,因为它不是很安全.更有可能的是,您将发送某种服务器在登录时返回的令牌,并且已经过哈希和/或加密.如果用户要修改它,服务器将知道并将其呈现为无效,并拒绝发送所请求的内容. 看看Passport中列出的一些身份验证策略.有许多图书馆都这样做但护照有很好的选择供您参考. 如果你真的想要阻止未经授权的用户甚至看到管理员选项,你不应该为主应用程序的一部分渲染html.应该在需要时单独请求返回该HTML.单击“admin”按钮将发出管理页面请求.如果用户具有所需权限,服务器将仅返回相关视图(与传统多页面应用程序完全相同).不同之处在于客户端应用程序如何处理它.现在我们将它插入当前页面而不是刷新整个事物. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |