인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

ram님의 프로필 이미지

작성한 질문수

[최신] Vue 강의 끝판왕 : Nuxt 3 완벽 마스터

Authentication : Pinia 상태 유지

피니아 persist 질문드립니다!

작성

·

48

0

안녕하세요 짐코딩님,

강의 잘 듣고 있습니다!


강의 듣다가 궁금한게 있어서 질문드려요!

피니아 persist 사용하면서 localStorage 또는 sessionStorage에 저장할 때 암호화해서 저장하는 방법이 있을까요?

답변 1

2

짐코딩님의 프로필 이미지
짐코딩
지식공유자

Pinia persist에서 데이터를 암호화하기 위해서는 persist 플러그인의 serializer 옵션을 참고할 수 있습니다. 예를 들면:

import { defineStore } from 'pinia'
import CryptoJS from 'crypto-js'

const ENCRYPT_KEY = 'your-secret-key'

export const useUserStore = defineStore('user', {
  state: () => ({
    name: '',
    email: ''
  }),
  persist: {
    storage: localStorage,
    serializer: {
      serialize: (state) => {
        return CryptoJS.AES.encrypt(JSON.stringify(state), ENCRYPT_KEY).toString()
      },
      deserialize: (state) => {
        const decrypted = CryptoJS.AES.decrypt(state, ENCRYPT_KEY).toString(CryptoJS.enc.Utf8)
        return JSON.parse(decrypted)
      }
    }
  }
})

이와 같이 참고할 수 있고요.

아래 링크는 참고 링크입니다.

ram님의 프로필 이미지
ram
질문자

감사합니다!

ram님의 프로필 이미지

작성한 질문수

질문하기