J'ai créé une application météo dans create-react-app. Comment masquer la clé API afin de pouvoir m'engager dans GitHub?
Actuellement, la clé est dans App.js: Const API_KEY = "123456";
Pour élaborer le commentaire d'Arup Rakshit,
Tout d’abord, vous devez créer un fichier .env en dehors de votre dossier src.
Puis ajouter
REACT_APP_WEATHER_API_KEY=123456
Avant la validation, vous devez exclure ce fichier .env. Recherchez le fichier .gitignore et ajoutez-le.
Maintenant, vous êtes libre de partir.
N'oubliez pas d'ajouter .env dans le fichier .gitignore.
Ajoutée:
const API_KEY = process.env.REACT_APP_WEATHER_API_KEY;
Afin de lire les variables env, vous devez redémarrer votre serveur.
Il se trouve que create-react-app dispose de fonctionnalités intégrées pour vous aider. Merci George Karametas pour cette idée. Pour accéder à cette fonctionnalité, vous devez:
.env
à la racine du répertoire de votre projet.- your_project_folder
- node_modules
- public
- src
- .env <-- create it here
- .gitignore
- package-lock.json
- package.json
.env
, ajoutez REACT_APP_
au nom de la clé d'API de votre choix et attribuez-la.L'outil create-react-app
utilise REACT_APP_
pour identifier ces variables. Si vous ne commencez pas votre nom de clé d'API avec, create-react-app
ne le verra pas.
// .env
REACT_APP_API_KEY=your_api_key <-- yes
API_KEY=your_api_key <-- no
// Example (from 이준형's response):
REACT_APP_WEATHER_API_KEY=123456
.env
à votre fichier .gitignore
.Après avoir ajouté la ligne ci-dessous, sauvegardez le fichier .gitignore
et faites un git status
pour vous assurer que votre fichier .env
n'apparaît pas comme un nouveau fichier dans git.
// .gitignore
# api keys
.env <-- add this line
# dependencies
/node_modules
...
process.env
.Pour vérifier que vous pouvez accéder à votre clé d'API, accédez à votre fichier App.js
et ajoutez un console.log
en haut sous les instructions require
. Après avoir enregistré le fichier et rechargé la page, si le journal de la console n'affiche pas votre clé d'API, essayez de redémarrer le serveur de réaction. Assurez-vous de supprimer la ligne de journal de la console avant de valider votre code.
// src/App.js
import React, { Component } from 'react';
import './App.css';
console.log(process.env.REACT_APP_WEATHER_API_KEY)
class App extends Component {
...
Voici ce qui a fonctionné pour moi:
J'ai créé le .env
dans le dossier racine . Dans ce dossier, j'ai ajouté ma clé:
REACT_APP_API_KEY_YT = "key"
//I added YT for youtube which is where my api key is from
Puis je suis allé à .gitignore
|| ou créez un .gitignore dans votre répertoire racine si vous ne le possédez pas. Dans .gitignore j'ai ajouté .env
#api key
.env
Ensuite, je suis retourné à la racine de mon fichier js d'application. Pour moi, c’était index.js pour d’autres, c’est probablement App.js Là, j’ai créé un API_KEY constant.
const API_KEY =`${process.env.REACT_APP_API_KEY_YT}`
J'ai vérifié si cela fonctionnait en consultant la console.
console.log("API", API_KEY)
Je devenais undefined
. J'ai arrêté le serveur (Control + C
) et redémarré le serveur . Après, j'ai pu voir la clé.
J'espère que ce n'est pas tard alors voici comment je l'ai fait. sur le dossier racine, si vous utilisez reapend votre variable d’environnement avec REACT_APP_
, il en va de même. REACT_APP_API_KEY=<keye here>
vous ne le faites pas. L’environnement React examinera les contrôles .env
si vous ajoutez le code REACT_APP_
avant que vous puissiez l’utiliser.
import React from 'React';
console.log(`${process.env.REACT_APP_API_KEY}`);
ça va vous rendre vous des variables.
si vous utilisez node, vous avez besoin d'un paquet https://www.npmjs.com/package/dotenv
c'est tout. prendre plaisir :)
Créez un fichier config_keys.js contenant les clés. Exportez-les par défaut
const API_K = "123456788345345235"
export default API_K
Puis importez-les dans votre fichier app.js ou target .js
IMPORT API_K from './config_keys/js'
const API_KEY = API_K
puis ajoutez config_keys.js à .gitignore
Vous pouvez créer un fichier séparé avec toutes les informations d'identification et y déclarer vos clés. Et ajoutez ce fichier à .gitignore
//credentials.js
export const API_KEY = '12345'