Laravel Vue发布组件,应通过身份验证进行保护
我对Vue比较陌生,并开始在后台构建带有身份验证和Laravel框架的SPA。为了实现这一点,我遵循了本教程: auth工作得非常好。但是我现在的错误是,受auth保护的路由/组件也捆绑在我的Laravel Vue发布组件,应通过身份验证进行保护,laravel,authentication,vue.js,routes,vuejs2,Laravel,Authentication,Vue.js,Routes,Vuejs2,我对Vue比较陌生,并开始在后台构建带有身份验证和Laravel框架的SPA。为了实现这一点,我遵循了本教程: auth工作得非常好。但是我现在的错误是,受auth保护的路由/组件也捆绑在我的app.js中,并且对于能够使用开发控制台的每个人来说都是完全可读的 范例 以下是我的路线: export default new VueRouter({ routes: [ { path: '/', redirect: '/login', }, {
app.js
中,并且对于能够使用开发控制台的每个人来说都是完全可读的
范例
以下是我的路线:
export default new VueRouter({
routes: [
{
path: '/',
redirect: '/login',
},
{
path: '/login',
name: 'login',
component: AuthLogin,
meta: {
auth: false
},
},
{
path: '/order',
name: 'order',
component: OrderPage,
meta: {
auth: true
},
},
]
});
因此,/order
和相应的组件OrderPage
受auth保护。
OrderPage
:
<template>
<div>
Order Page
</div>
</template>
订购页
但是,组件OrderPage
在公共目录的app.js
中是可读的。我可以搜索“订单页面”的内容并阅读它,我认为这不是auth的目标
是否有一种方法可以“隔离”受保护的组件,并仅在通过身份验证时导出/绑定它们?我遗漏了什么吗?基于Auth的绑定
您可能没有在运行中绑定javascript。。。在客户端访问您的站点之前,您就已经进行了传输和绑定,因此,不,在传递身份验证时,您不应该进行绑定。捆绑、传输和缩小可能是资源密集型的过程 安全隔离 您可以将代码隔离到特定的javascript文件,没有理由需要将所有内容捆绑到同一app.js文件中。Laravel Mix可以根据您的配置生成多个捆绑包 然而,从安全的角度来看,这是没有意义的,因为客户端代码应该永远不应该包含任何敏感的内容,所有操作授权都应该在服务器上执行 产品可读性
如果您担心有人在阅读客户端代码,那么缩小的javascript非常难破译,因为它已经缩小和模糊了。生产javascript应始终在没有源代码映射的情况下缩小。基于Auth的捆绑
您可能没有在运行中绑定javascript。。。在客户端访问您的站点之前,您就已经进行了传输和绑定,因此,不,在传递身份验证时,您不应该进行绑定。捆绑、传输和缩小可能是资源密集型的过程 安全隔离 您可以将代码隔离到特定的javascript文件,没有理由需要将所有内容捆绑到同一app.js文件中。Laravel Mix可以根据您的配置生成多个捆绑包 然而,从安全的角度来看,这是没有意义的,因为客户端代码应该永远不应该包含任何敏感的内容,所有操作授权都应该在服务器上执行 产品可读性
如果您担心有人在阅读客户端代码,那么缩小的javascript非常难破译,因为它已经缩小和模糊了。生产javascript应该始终在没有源代码映射的情况下进行精简。您可能没有动态绑定javascript。。。在客户端访问您的站点之前,您就已经进行了传输和绑定,因此,不,在传递身份验证时,您不应该进行绑定。您可以将代码隔离到特定的javascript文件,没有理由需要将所有内容捆绑到同一app.js文件中。然而,从安全的角度来看,这是没有意义的。客户端代码永远不应该包含任何敏感的内容,而精简后的代码应该难以破译。所有授权都应该在服务器上执行。在生产中,JS将被缩小,这将使其几乎不可读。不应该有任何秘密在那里-没有API键等-但它将得到很好的保护,以防止偶然的“我想知道这是做什么的”。你可能不是捆绑的javascript的飞行。。。在客户端访问您的站点之前,您就已经进行了传输和绑定,因此,不,在传递身份验证时,您不应该进行绑定。您可以将代码隔离到特定的javascript文件,没有理由需要将所有内容捆绑到同一app.js文件中。然而,从安全的角度来看,这是没有意义的。客户端代码永远不应该包含任何敏感的内容,而精简后的代码应该难以破译。所有授权都应该在服务器上执行。在生产中,JS将被缩小,这将使其几乎不可读。不应该有任何秘密在那里-没有API键等-但它会很好地防止偶然的“我想知道它做什么”。