Как создать промежуточное ПО на laravel SPA от cretueusebiu - PullRequest
0 голосов
/ 29 апреля 2020

Я новичок и только что узнал о laravel SPA. я пытаюсь создать проект laravel spa из github: https://github.com/cretueusebiu/laravel-vue-spa.

так что следующим шагом я хочу добавить промежуточное ПО, но в структуре я не знаю, что происходит.

эта папка на

js
  middleware
        admin.js
        auth.js
        check-auth.js
        guest.js
        locale.js

для администратора. js

import store from '~/store'

export default (to, from, next) => {
  if (store.getters['auth/user'].role !== 'admin') {
    next({ name: 'home' })
  } else {
    next()
  }
}

эта роль - администратор, но у пользователей таблиц я ничего не видел в роли или чем-то еще, Скажите мне, пожалуйста . кто-то, кто уже использует это, я просто хочу спросить, как можно создать какое-то промежуточное программное обеспечение, как, пользователи, администратор, супер-администратор, или что-нибудь еще. * Thankyou 1014 *

1 Ответ

0 голосов
/ 29 апреля 2020

Я думаю, что то, что вы хотите сделать, обычно называют охранниками (или воротами). Обычно это выполняется промежуточным ПО, но промежуточное ПО может использоваться гораздо больше.

В вашем конкретном экземпляре c вы можете включить промежуточное ПО admin.js в компоненте, добавив middleware: 'admin' в скрипт компонента. .

Вы правы в отношении поля роли для пользователя. Вам нужно будет добавить роли в пользовательскую таблицу (и, возможно, модель тоже). Вы сможете увидеть это в Vue инструментах разработчика. Вы можете добавить его как текстовое поле или просто перечисление. Есть лучшие способы использования таблицы ролей. Но перечисление быстрое и грязное.

admin.js только защищает от роли "администратора", поэтому вы можете просто скопировать / вставить файл и изменить store.getters['auth/user'].role !== 'admin' на любую роль, которую хотите защитить. Все файлы в каталоге js/middleware/ выглядят автоматически загружаемыми из js/router/index.js

Например, если вы создаете промежуточное программное обеспечение с именем superUser.js и меняете защиту на store.getters['auth/user'].role !== 'superUser' Вы добавили бы middleware: 'superUser' к своему компоненту ,

...