TL;DR CanActivate 如何工作?
长版 这是我第一次看到客户端访问控制的实现。
在我目前使用的所有身份验证系统(例如 PHP 或其他服务器端编程语言)中,总是有一个函数检查用户是否已经登录,如果该函数返回 true,则服务器可以传递页面,否则用户被重定向到登录页面。
在这种情况下,客户端无法访问服务器代码,它只能发出请求并等待服务器组成页面,然后渲染它。
相反,Angular 的工作方式不同。它是一个使用 JavaScript 的客户端框架,每个人都可以看到它的代码。私人页面没有安全地放置在服务器内,唯一的服务器任务是交付 SPA,但它不能接受进一步的请求。
尽管如此,该框架仍将功能实现为 CanActivate,并且运行良好。所以我想知道是什么禁止我注入一些 JavaScript 代码和访问私人页面,即使我没有权限,或者更一般地说这个系统是如何工作的。在互联网上我没有找到足够的信息,也没有足够的技能来理解源代码。你能帮我澄清一下我的想法吗?
我可以问标题中的问题,但我更愿意告诉你我所知道的一切,所以如果有什么不对的地方,你可以纠正我。谢谢