'Storing API Keys in react-native app with expo library

I have a question, please, if possible explain in simple terms. Im new to react native, what's the best way to store API keys in a secure way where they can't reverse engineer it and get the keys right away. Can I just retrieve it from the server side using a restapi to get the apikey only if user is signed in? I'm trying to upload pictures to aws storage, but I want to store the APIKey somewhere where it's difficult to retrieve at least by hackers. Also, is there a way to send images trough the server express.js(from react native to express app) how can I do it, so I can upload it to aws storage or even if it is possible on mongodb instead of aws storage.

For example:

const express = require("express");
const requireAuth = require("../middlewares/requireAuth");
const router = express.Router();
router.use(requireAuth); //make sure they are signed in

/**
 * * GET: Api key for the amazon s3 bucket storage
 */
router.get("/apikey/amazonstorage", (req, res) => {
  const APIKEY = process.env.APIKEY;
  if (APIKEY) {
    res.status(200).send(APIKEY);
  } else {
    res.status(502).send(null);
  }
});

Thank you in advance



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source