OpenID Connect 登录后如何在 Vue 中安全存储 ID Token?
我用 OpenID Connect 接入了公司的统一认证,登录成功后拿到了 ID Token,但不确定该存 localStorage 还是 sessionStorage,听说都有安全风险?
现在我是这样存的,但担心被 XSS 攻击偷走:
<script setup>
import { useAuthStore } from '@/stores/auth'
const handleLoginSuccess = (response) => {
const { id_token } = response
// 直接存 localStorage,是不是太危险了?
localStorage.setItem('id_token', id_token)
useAuthStore().setToken(id_token)
}
</script>
但 sessionStorage 依然防不住 XSS。真正安全的做法是后端用 HttpOnly Cookie 存 token,前端根本不碰 token,只通过 Cookie 自动认证。