我应该在哪里存储jwt以进行移动身份验证

时间:2020-08-27 17:40:42

标签: react-native express jwt passport.js jwt-auth

我应该使用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)
        }
    })
}))

1 个答案:

答案 0 :(得分:1)

您可以使用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

的更多信息