РЕДАКТИРОВАТЬ: Будет ли лучше создать шаблон для создания макета для страницы, прошедшей проверку подлинности, и перенаправлять после входа в систему, не используя условное выражение на домашней странице, а вместо этого промежуточное ПО, которое перенаправляет неаутентифицированных пользователей на домашнюю страницу?
Я перевел приложение на SSR и прорабатываю детали аутентификации, любые ресурсы или советы по проектированию приветствуются!
Я искал людей, имеющих ту же проблему, и пробовал различные варианты сбезуспешно, поэтому мне было интересно, есть ли у кого-нибудь подсказки, где я могу ошибаться здесь. Заранее спасибо!
Следующий код должен объяснить проблему, с которой я столкнулся. Я использую Nuxt SPA и не могу обновить макет в соответствии с магазином.
console.log ('auth or not') возвращает true, а в моем шаблоне Authenticated = {{isAuth}} также возвращает true.
Дело в том, что я сохраняю код вvscode макет обновляется соответствующим образом, но затем, когда я обновляюсь, он возвращается к значению «по умолчанию», даже если сеанс сохранен, а метод get isAuth возвращает true.
Оффтопические вопросы (не стесняйтесь игнорировать)
Я разработчик-самоучка, поэтому, если вы видите какие-либо анти-паттерны (их, вероятно, будет много), я открыт для совета.
Вы бы порекомендовали Nuxt для проекта SPA поверх обычного vue, vuex, vue-routerили, по вашему мнению, я должен просто перейти в SSR, так как я в начале проекта.
Это волонтерский проект, поэтому я просто пытаюсь улучшить свои навыки и помочь другу, пока яна него. Будем весьма благодарны за любые учебные материалы!
import { fireDb } from '~/plugins/firebaseconfig.js'
import { mapGetters } from 'vuex'
export default {
data () {
return {
writeSuccessful: false,
userLoggedIn: false,
}
},
beforeCreate() {
console.log('before create')
let _this = this;
console.log(sessionStorage);
Object.keys(sessionStorage).forEach((e, i) => {
//getting user info from session storage
if(JSON.parse(sessionStorage[e]).uid) {
let user = JSON.parse(sessionStorage[e]);
let userInfo = {
userEmail: user.userEmail,
userThumbnail: user.photoURL,
userName: user.displayName
};
_this.$store.commit('userLogin', userInfo)
console.log('auth or not')
console.log(this.$store.getters.isAuth);
}
})
},
computed:
mapGetters({
anuncios: 'anuncios/get',
isAuth: 'isAuth'
}),
layout({store}) { return store.getters.isAuth ? 'authenticated' : 'default' },
Извините за длинный пост и еще раз спасибо всем, кто нашел время, чтобы прочитать его!