Как проверить компонент Vue, если пользователь аутентифицирован в Laravel?

Более обширная версия https://stackoverflow.com/a/10786066/1794894

/"([^"\\]{50,}(\\.[^"\\]*)*)"|\'[^\'\\]{50,}(\\.[^\'\\]*)*\'|“[^”\\]{50,}(\\.[^“\\]*)*”/   

Эта версия также содержит

  1. Минимальная длина цитаты 50
  2. Экстра-тип кавычек (открыть и закрыть )

0
задан Jquestions 13 July 2018 в 16:21
поделиться

1 ответ

Обычно из вашего контроллера вы передаете аутентифицированный пользовательский объект в представление, которое затем будет храниться в переменной javascript

. Контроллер:

public function index()
{
    return view('index', [
        'auth_user' => Auth::user()
    ]);
}

. Вы узнаете,

В вашем лезвии присвойте auth_user переменной javascript:

<script>
    window.auth_user = {{ json_encode($auth_user); }};
</script>

ваш объект хранения vuex должен выглядеть следующим образом:

{
    state: {
        user: null
    },
    mutations: {
        setAuthUser(state, user) {
            state.user = user;
        }
    },
    getters: {
        isLoggedIn(state) {
            return state.user !== null;
        }
    }
}

Затем в вашем корневом компоненте Vue получите auth_user и сохраните его в хранилище:

<script>
    export default {

        mounted() {
            this.$store.commit('setAuthUser', window.auth_user);
        }

    }
</script>

Вы теперь в основном есть getter, называемый isLoggedIn, который вы можете использовать в своем приложении для проверки того, что пользователь в настоящий момент зарегистрирован.

2
ответ дан Julian Paolo Dayag 17 August 2018 в 12:24
поделиться
  • 1
    Работает хорошо. Для справки мне пришлось использовать вместо этого window.auth_user = {!! json_encode($auth_user) !!};. Кроме того, пришлось вставить скрипт лезвия перед основным компонентом Vue root (заголовок не нижний колонтитул в моем случае) – Jquestions 4 August 2018 в 16:44
Другие вопросы по тегам:

Похожие вопросы: