React Native如何在axios的then回调中存储API返回的Auth Token
如何在Axios回调中存储Token到localStorage/sessionStorage
你只需要把原来的AsyncStorage.setItem替换成浏览器原生的localStorage.setItem或sessionStorage.setItem即可,这两个API都是同步操作,不需要await。
替换为localStorage的代码
const getdata = async () => { var date2 = moment(mydate2).format('DD/MM/YYYY'); var date = moment(mydate).format('DD/MM/YYYY'); var todaydate = moment(new Date()).format('DD/MM/YYYY'); var Data56; if (date == todaydate && date2 != todaydate) { Data56 = { name: name, email: email, babyname: babyname, phone: nuber, period: date2, // baby_date: date, }; } else { Data56 = { name: name, email: email, babyname: babyname, phone: nuber, // period: date2, baby_date: date, }; } axios({ method: 'POST', url: 'http://127.0.0.1:8000/api/register', data: Data56, }) .then(response => { // 存储到localStorage,持久化保存(关闭浏览器后仍存在) localStorage.setItem('token', response.data.token); alert('success'); }) .catch(error => { alert(JSON.stringify(error.response.data)); }); };
替换为sessionStorage的代码
如果需要会话级存储(关闭标签页即失效),换成sessionStorage即可:
// ... 前面的代码和上面一致 .then(response => { // 存储到sessionStorage,仅当前会话有效 sessionStorage.setItem('token', response.data.token); alert('success'); }) // ... 后面的代码不变
两者区别
localStorage:数据会持久化保存,即使关闭浏览器、重启电脑,只要没手动清除就会存在sessionStorage:数据仅在当前会话(标签页)有效,关闭标签页后数据自动清除
内容的提问来源于stack exchange,提问作者vivek kn
相关产品推荐
相关产品推荐

