我正在构建一个Expo / React Native应用程序,在该应用程序中,我使用提取和凭据(cookie)登录到服务器。
代码正常运行,如下所示:
login = async (email, password) => {
try {
var body = JSON.stringify({ email, password });
const response = await fetch('http://10.0.2.2/login', {
method: 'POST',
credentials: 'include',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
username: username,
password: password
})
});
if(response.hasOwnProperty('accessToken'))
{
console.log('login successfull');
console.log(response);
}
else if(response.hasOwnProperty('error'))
{
console.log('login failed');
console.log(response)
}
}
catch(e) {
console.log('error: ' + e);
}
};
我的问题是,当我停止应用程序时,React Native不会注销。我不想通过API调用手动注销。
有没有类似React Web的方法,我只是从Chrome中删除了cookie,然后注销了?
答案 0 :(得分:1)
您可以使用clearCookies
中的RCTNetworking
函数清除cookie:
const RCTNetworking = require('RCTNetworking');
RCTNetworking.clearCookies((result) => {
console.log(result) //true if successfully cleared
});
我可以确认它可以在Android和Expo上使用。对于iOS,我认为此https://github.com/facebook/react-native/pull/9264已解决。
答案 1 :(得分:0)
如果您正在使用expo,则可以尝试:
expo r -c
这将清除项目的缓存并运行expo