问题描述
我应该使用cookie还是asyncStorage存储令牌以使用它来检查用户是否通过passport-jwt登录
const cookieExtractor = (req) => {
let token = null
if(req && req.cookies){
token = req.cookies.jwt
}
console.log(token)
return token
}
passport.use(new jwtStrategy({jwtFromrequest:cookieExtractor,secretorKey:'sphinx'},(payload,done) => {
user.findById(payload.userId,(err,User) => {
if(err){
return done(err,false)
}
if(User){
return done(null,User)
}else{
return done(null,false)
}
})
}))
解决方法
您可以使用expo-secure-store
。
expo-secure-store
提供了一种在设备上本地加密和安全存储键值对的方法。
要使用它,请先使用expo install expo-secure-store
安装后,将在您的代码中使用import * as SecureStore from 'expo-secure-store'
现在,要使用expo-secure-store
,您可以使用:
SecureStore.setItemAsync(key,value,options) //to set one item
SecureStore.getItemAsync(key,options) //to get one item
SecureStore.deleteItemAsync(key,options) //to delete one item
当我设置一个具有一种功能的按键时,我将举一个例子:
import * as SecureStore from 'expo-secure-store'
const signin = dispatch => async ({ token }) => {
await SecureStore.setItemAsync('token',token)
};
您可以了解有关expo-secure-store
here