【问题标题】:How to constraint a route with a specific role in my case with vue-auth?在我的情况下,如何使用 vue-auth 限制具有特定角色的路由?
【发布时间】:2019-11-22 00:48:47
【问题描述】:

我在 SPA 中使用 Vue-js 开发了我的第一个 Laravel 应用程序。

我尝试禁止通过角色访问路由(view-router)。

对于角色,我使用 spatie/laravel-permission 包。

我这样设置 view-auth rolesVar

const config = {
   rolesVar: 'roles',
   …
}

这里是一个用户在 json 中的例子

{
   "status":"success",
   "data":{
      "id":1,
      "first_name":"John",
      "last_name":"Doe",
      "email":"john@Doe",
      "created_at":"2019-07-11 11:20:20",
      "updated_at":"2019-07-11 11:20:20",
      "all_permissions":[

      ],
      "can":[

      ],
      "permissions":[

      ],
      "roles":[
         {
            "id":1,
            "name":"super-admin",
            "guard_name":"api",
            "created_at":"2019-07-11 11:20:20",
            "updated_at":"2019-07-11 11:20:20",
            "pivot":{
               "model_id":1,
               "role_id":1,
               "model_type":"App\\Models\\User"
            },
            "permissions":[

            ]
         }
      ]
   }
}

我试图像这样强迫我的角色,但它不起作用。我被重定向到 / 403(根据要求)。

我断定他没有扮演我的角色。

{
path: '/admin',
name: 'admin.dashboard',
component: AdminDashboard,
meta: {
  auth: {
    roles: { name: 'super-admin' },
    redirect: { name: 'login' },
    forbiddenRedirect: { path: '/403' }
  }
}

},

我认为这是因为我在“角色”中有几个 json 对象,但我不知道该怎么称呼它才能工作

感谢您的帮助!

【问题讨论】:

  • 在服务器端实现安全性更好,客户端JS更容易欺骗
  • @SerakShiferaw,当然,有服务器端安全性,但我也需要客户端安全性

标签: laravel vue.js vuejs2


【解决方案1】:

像这样使用服务器端安全性而不是客户端

Route::group(['middleware' => ['permission:permission1|permission2']], function () {
    Route::get('/protected_URL',function(){
        return "I can only access this if i only have permission1 and permission2";
    });
});

这只是经过身份验证的用户和具有“permission1”和“permission2”的用户可以访问此页面,否则它会认为访问被拒绝错误,您可以使用 axios 轻松捕获此错误并显示访问被拒绝消息

【讨论】:

  • 感谢您的帮助。它是一个 SPA 应用程序(单页应用程序)。 Laravel 只处理 API 路由。管理页面路由的是视图路由器。
猜你喜欢
  • 1970-01-01
  • 2020-06-27
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多