【问题标题】:where should i store jwt for mobile auth我应该在哪里存储 jwt 以进行移动身份验证
【发布时间】:2020-12-16 15:52:51
【问题描述】:

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

【问题讨论】:

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


    【解决方案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-storehere

    【讨论】:

      猜你喜欢
      • 2017-08-15
      • 1970-01-01
      • 2021-07-11
      • 2018-11-23
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 2019-04-25
      • 2020-04-10
      相关资源
      最近更新 更多