1. 首页
  2. 后端

.env:守护数据安全的隐形盾牌

  .env:守护数据安全的隐形盾牌

================

前言

在项目开发的过程中,我们会使用到一些比较私密的数据

如在使用openai的时候,openai的key就是一个需要保密的重要数据

本文带大家使用.env去守护数据安全,首先讲解一下.env文件是什么,再介绍他在node项目中的使用方式

什么是.env文件

.env 文件是一个用于存储环境变量的文件。环境变量是一些可以在操作系统或应用程序中访问的键值对。这些变量通常包含一些敏感的信息,如数据库连接字符串、API密钥、配置参数等。

使用 .env 文件的主要好处包括:

  1. 安全性:将敏感信息存储在 .env 文件中,而不是硬编码到应用程序的源代码中,可以提高应用程序的安全性。
  2. 灵活性:不同的开发环境(如开发、测试、生产)可以有不同的环境变量配置,通过使用 .env 文件可以轻松地切换这些配置。
  3. 可移植性:.env 文件可以跟随项目一起部署,确保应用程序在不同的环境中使用正确的配置。

通常情况下,.env 文件会被添加到 .gitignore 文件中,以确保敏感信息不会被意外地提交到版本控制系统中。

在使用第三方服务(如 OpenAI API)时,你需要在 .env 文件中存储API密钥,以便应用程序能够访问这些服务。这样可以确保API密钥的安全性,同时也提高了应用程序的可移植性。

如何在项目中使用.env文件

一、创建 .env 文件

首先,在项目的根目录下创建一个名为 .env 的文件。这个文件的名称是约定俗成的,用于存储项目相关的环境变量配置。

二、定义环境变量

在 .env 文件中,按照特定的格式定义环境变量

DB_HOST=localhost
DB_PORT=3306
DB_USER=username
DB_PASSWORD=password

每个环境变量一行,使用 = 来分隔变量名和变量值。

三、读取 .env 文件

在项目中,需要使用相应的库或框架来读取 .env 文件中的环境变量。不同的编程语言和框架有不同的实现方式。

以 Node.js 为例,可以使用 dotenv 库:

require('dotenv').config();

四、在代码中使用环境变量

读取 .env 文件后,就可以在代码中通过相应的方式获取环境变量的值。

在 Node.js 中:

const dbHost = process.env.DB_HOST;
const dbPort = process.env.DB_PORT;

在我们的项目有一个文件叫做.gitignore文件

这个文件是用于告诉git在上传文件的时候哪些文件不要上传到git仓库里

我们就需要添加

# 环境变量 不能提交 机密
.env

让git在上传代码的时候不要上传我们的.env文件

// 引入openai
const OpenAI = require("openai");

// 引入 dotenv 并加载环境变量
// 向全局的全局作用域中添加一个名为 "process" 的对象
// 该对象包含一个名为 "env" 的属性,该属性包含环境变量。
// process.env.OPENAI_API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
require("dotenv").config();

// 现在你可以访问环境变量了
// 创建OpenAI实例
// AI全栈开发
OPENAI_API_KEY = process.env.OPENAI_API_KEY;
const client = new OpenAI({
  apiKey: OPENAI_API_KEY, // 从OpenAI官网获取的API密钥
  baseURL: "https://api.chatanywhere.tech/v1", //'https://api.chatanywhere.tech/v1'
});

async function main() {
  // 做一些nlp任务
  let prompt = `
    判断一下用户的评论在情感上是正面的还是负面的
    评论:买的很棒,下次还会买
    情感:正面
    评论:质量很差,下次不买
    情感:负面
    `;
  let myPrompt = `
    ${prompt} 
    评论:说实话,苹果越来越没新意了,散了吧
    情感??
    `;
  // 根据我们说的话,机器学习
  // 聊天的方式
  // ai自然语言处理 GC 生成内容
  const chatCompletions = await client.chat.completions.create({
    model: "gpt-3.5-turbo",
    messages: [{ role: "user", content: myPrompt }],
    n: 1,
  });

  console.log(chatCompletions.choices[0]);
}

main();

运行这段代码,可以看到我们成功的拿到了env文件里的数据,并成功的向openai发送了请求

image.png

总结

本文总结了使用 .env 文件管理项目环境变量的重要性和具体步骤。

希望能对你有所帮助!!!!

原文链接: https://juejin.cn/post/7392105060899635211

文章收集整理于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除,如若转载,请注明出处:http://www.cxyroad.com/16994.html

QR code