J'essaie de masquer ma clé API lorsque je fais un commit sur github, et j'ai parcouru le forum pour trouver des conseils, notamment le post suivant :
Comment cacher la clé API dans create-react-app ?
J'ai fait les changements et j'ai redémarré Yarn. Je ne suis pas sûr de ce que je fais de mal - j'ai ajouté un fichier .env
à la racine de mon projet (je l'ai nommé process.env
) et dans le fichier je viens de mettre REACT_APP_API_KEY = 'my-secret-api-key'
.
Je pense que c'est peut-être la façon dont j'ajoute la clé à mon fetch
dans App.js, et j'ai essayé plusieurs formats, y compris sans utiliser le modèle littéral, mais mon projet ne compile toujours pas.
Toute aide est la bienvenue.
performSearch = (query = 'germany') => {
fetch(`https://api.unsplash.com/search/photos?query=${query}&client_id=${REACT_APP_API_KEY}`)
.then(response => response.json())
.then(responseData => {
this.setState({
results: responseData.results,
loading: false
});
})
.catch(error => {
console.log('Error fetching and parsing data', error);
});
}
0 votes
Au lieu de
process.env
nommez-le.env.local or .env.process
et le garder en dehors du répertoire src2 votes
Bonjour @RIYAJKHAN J'ai changé le fichier en .env.local et il est bien en dehors du répertoire src, mais j'obtiens toujours REACT_APP_API_KEY is not defined :/
9 votes
Ce qui a résolu le problème pour moi, c'est de fermer le terminal qui exécute mon serveur de développement local et de ré-exécuter
npm run start
.0 votes
Duplicata possible de Utilisation des clés API dans une application react
7 votes
Vous ne pouvez pas cacher des secrets dans une application react. See stackoverflow.com/a/46839021/4722345
34 votes
NE PAS l'utiliser pour stocker des secrets. De la docs ...
WARNING: Do not store any secrets (such as private API keys) in your React app! Environment variables are embedded into the build, meaning anyone can view them by inspecting your app's files.
3 votes
Vous devez configurer un serveur et utiliser l'authentification comme JWT afin de le cacher. Lire cette suggestion pour plus d'informations.