我正在尝试实现在服务器端运行的注销功能。该功能目前仅在登录时删除
localStorage
中存储的令牌,如下所示:
const logout = () => {
localStorage.removeItem('accessToken');
localStorage.removeItem('idToken');
};
但是,这种方法会遇到错误,因为
localStorage
在服务器端无法访问。
问题: 如何有效地从服务器端删除存储在
accessToken
中的idToken
和localStorage
?
在 Nuxt 3 的上下文中并从服务器端的 localStorage 中删除令牌,我没有直接尝试修改
localStorage
,因为那里无法访问它。
我的期望: 我希望注销功能能够在成功注销后成功从服务器上的
accessToken
中删除令牌(idToken
和 localStorage
),就像在客户端一样。这将有效地使用户的会话无效。
你应该
useCookie
做这些事情。根据定义,您将无权访问 localStorage,因为它是客户端本地的,不会发送到服务器。
示例:
const accessToken = useCookie("accessToken");
accessToken.value = undefined; // this deletes cookie;
accessToken.value = "ezY.." // this sets the value of cookie;
此代码将在服务器端和客户端运行。