繁体   English   中英

使用 expo 库在 react-native 应用程序中存储 API 密钥

[英]Storing API Keys in react-native app with expo library

我有一个问题,请尽可能简单地解释一下。 我是本机反应的新手,以安全的方式存储 API 密钥的最佳方式是什么,他们无法对其进行逆向工程并立即获取密钥。 我可以仅在用户登录时使用restapi从服务器端检索它以获取apikey吗? 我正在尝试将图片上传到 aws 存储,但我想将 APIKey 存储在至少黑客难以检索的地方。 另外,有没有办法通过服务器 express.js(从 react native 到 express 应用程序)发送图像我该怎么做,所以我可以将它上传到 aws 存储,或者即使它可以在 mongodb 上而不是 aws 存储上。

例如:

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);
  }
});

先感谢您

一般来说,处理 API 密钥最安全的方法是将它们存储在后端服务器上,并让服务器向客户端的第三方 API 发出这些请求(并在必要时将结果发送回客户端)。

来自React Native 文档

如果您必须拥有 API 密钥或机密才能从您的应用程序访问某些资源,那么处理此问题的最安全方法是在您的应用程序和资源之间构建一个编排层。 这可能是一个无服务器函数(例如,使用 AWS Lambda 或 Google Cloud Functions),它可以使用所需的 API 密钥或密钥转发请求。 API 使用者无法访问服务器端代码中的秘密,就像您的应用程序代码中的秘密一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM