@lemonlimelike

Как сделать проверку на авторизацию пользователя?

Всем добрый вечер. Разрабатываю приложение на vue+laravel. Не понимаю как сделать проверку, авторизован ли пользователь или нет. На чистом laravel знаю как, а вот с использованием vue componennts не особо это понимаю. Допустим есть div с формой для авторизации, вешаю на него v-if="????" и есть еще один div если пользователь уже авторизован, на него v-else... Но вот что в v-if записать? Как сделать эту проверку? Объявлять глобальную переменную? Что в нее записывать, если записать так window.isLogin = {{Auth::check()}}, то такая запись не работает.
  • Вопрос задан
  • 1045 просмотров
Решения вопроса 1
@EvgeniiR
https://github.com/EvgeniiR
app.js - https://github.com/EvgeniiR/forum/blob/master/reso...
let authorizations = require('./authorizations')

Vue.prototype.authorize = function (...params) {
    if (! window.App.user) return false;

    if (typeof params[0] === 'string') {
        return authorizations[params[0]](params[1]);
    }

    return params[0](window.App.user);
}
Vue.prototype.signedIn = window.App.signedIn;

authorizations.js - https://github.com/EvgeniiR/forum/blob/master/reso...
let user = window.App.user;

module.exports = {
    owns(model, prop = 'user_id') {
        return model[prop] === user.id
    },

    isAdmin() {
        return user.name === 'admin';
    }
};

app.blade.php - https://github.com/EvgeniiR/forum/blob/master/reso...
<script>
        window.App = {!! json_encode([
            'user' => Auth::user(),
            'signedIn' => Auth::check()
        ]) !!};
</script>

Примеры использования:
<div v-if="signedIn"> - проверить авторизирован ли пользователь
v-if="authorize('owns', thread)", где в объекте thread задан user_id - проверить, является ли владельцем.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы