React native req.body未定义axios.get进入反应本机

React native req.body未定义axios.get进入反应本机,react-native,axios,React Native,Axios,我的react本机代码中有一个api.get,它是axios.get,将auth_令牌作为param传递 const auth_token = await AsyncStorage.getItem('access_token'); api.get('/info/getallposts', { auth_token }) 身份验证令牌不为空 在我的后端我有这个解码器 let user_id = jwt.decode(req.body.auth_token).id; req.body

我的react本机代码中有一个api.get,它是axios.get,将auth_令牌作为param传递

const auth_token = await AsyncStorage.getItem('access_token');
api.get('/info/getallposts', {
      auth_token
})
身份验证令牌不为空

在我的后端我有这个解码器

let user_id = jwt.decode(req.body.auth_token).id;
req.body.auth_标记未定义


它适用于POSTMAN:

GET请求没有与之关联的正文。如果您想在get请求中包含类似于arg的内容,则需要使用查询参数在URL中对其进行编码

但是,您不希望使用auth令牌执行此操作。相反,您需要将令牌放在http头中。对于JWT令牌,您可能需要使用承载令牌头值

试试这个:

const api = require('axios');

// make sure that this code is wrapped in an async function
const auth_token = await AsyncStorage.getItem('access_token');
const posts = await api.get('/info/getallposts', {
   headers: {
     Authorization: `Bearer ${auth_token}`
   }
})
现在,在后端代码中,您需要在请求对象的headers字段中查找授权密钥。假设您使用的是express,您的路线将如下所示:

app.get('/info/getall/posts', (req, res) => {
  const authHeader = req.get('Authorization');
  const jwt = authHeader.split(' ')[0]; 
});

当然,我建议在尝试拆分它之前,首先确保标头存在。。。可能在执行端点处理程序或其他东西之前就使用中间件,但这应该可以让您继续使用。

完美!非常感谢。