Laravel Vue发布组件,应通过身份验证进行保护

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', }, {

我对Vue比较陌生,并开始在后台构建带有身份验证和Laravel框架的SPA。为了实现这一点,我遵循了本教程:

auth工作得非常好。但是我现在的错误是,受auth保护的路由/组件也捆绑在我的
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键等-但它会很好地防止偶然的“我想知道它做什么”。