Javascript 如何在reactjs中处理令牌身份验证?
假设我有用于登录的API,请注销。我正在使用令牌身份验证。Javascript 如何在reactjs中处理令牌身份验证?,javascript,reactjs,authentication,token,Javascript,Reactjs,Authentication,Token,假设我有用于登录的API,请注销。我正在使用令牌身份验证。 我有一个组件名登录。我可以调用API并获得令牌。但是,我不知道如何在浏览器中保存令牌,直到注销或稍后自动销毁令牌。您可以使用universal cookie软件包将其设置在cookie中 const cookies = new Cookies(); cookies.set('token', this.token, { path: '/' }); 不要忘记从通用cookie导入(或要求)cookie 您可以使用以下方法将其检索回来: c
我有一个组件名登录。我可以调用API并获得令牌。但是,我不知道如何在浏览器中保存令牌,直到注销或稍后自动销毁令牌。您可以使用
universal cookie
软件包将其设置在cookie中
const cookies = new Cookies();
cookies.set('token', this.token, { path: '/' });
不要忘记从通用cookie
导入(或要求)cookie
您可以使用以下方法将其检索回来:
cookies.get('token');
指
您也可以将其保存在本地存储中:
localStorage.setItem('token', this.token);
但保存在cookie中是一个更好的主意,请参阅:
您可以创建存储模块,并在客户端浏览器中检查可用存储
import LocalStorage from "./localstorage"
import Cookie from "./cookie"
// Function to check availability of `localStorage`
function storageAvailable() {
try {
var storage = window["localStorage"],
x = '__storage_test__';
storage.setItem(x, x);
storage.removeItem(x);
return true;
}
catch(e) {
return false;
}
}
export default function Storage() {
return storageAvailable() ? LocalStorage : Cookie
}
使用上述模块:
function login(redirect = '/home') {
// set your session data
storage.set({email, id})
// redirection
window.location.href = redirect
}
function logout(redirect = "/") {
storage.clear()
// redirection
window.location.href = redirect
}
const Session = {
login,
logout
}
export default Session
现在,您可以简单地使用会话
模块分别作为Session.login()和Session.logut()登录和注销
如何使用cookie:
如何使用localStorage:您可以同时使用cookie和localStorage。如果不使用cookie,您可以检查客户端是否支持本地存储。您是从“/localstorage”导入的。那么,我需要为localstorage编写任何内容吗?.localstorage“和“/cookie”是用于设置localstorage和cookie的模块。您可以创建getter和setter来设置和获取存储数据。我添加了有关如何使用localstorage和cookie的链接。@ashrafulisam Yes.“/localstorage”。是将设置存储数据的实际代码。我只是向你展示了一种抽象的方法。您可以在登录存储后设置身份验证令牌或所需的任何数据。