为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 【金秋打卡】第17天 使用 .env...

【金秋打卡】第17天 使用 .env 文件保存敏感信息和 Oauth2 的介绍

2022.11.09 23:22 61浏览

课程名称web前端架构师
课程章节:第16周 第六章、第七章
主讲老师:张轩
课程内容: 使用 .env 文件保存敏感信息、Oauth2 的介绍

使用 .env 文件保存敏感信息

在之前我们编写的代码中,我们在 config 文件中保存了我们的一些敏感信息,比如数据库密码、第三方申请的 key 等,这样做是很不安全的,所以我们需要将它给删除掉,保存到我们的环境变量中

egg.js 运行环境

egg.js 运行环境文档地址 https://www.eggjs.org/zh-CN/basics/env

NODE_ENV EGG_SERVER_ENV 说明
local 本地开发环境
test unittest 单元测试
production prod 生产环境

指定运行环境

  1. 通过 config/env 文件指定,该文件的内容就是运行环境,如 prod。一般通过构建工具来生成这个文件。
// config/env
prod
  1. 通过 EGG_SERVER_ENV 环境变量指定运行环境更加方便,比如在生产环境启动应用
EGG_SERVER_ENV=prod npm start

.env 文件来保存信息

我们还可以在 .env 文件中保存我们的环境变量,同时将该文件添加到 .gitignore 中,防止提交

USER=root
PASSWORD=123456

然后安装 dotenv

npm i dotenv

在 config 文件中引入 doteng

import dotenv from 'dotenv';
dotenv.config();
config.mongoose = {
  url:  process.env.MONGO_HOST,
  options: {
    user: process.env.MONGO_USER,
    pass: process.env.MONGO_PASS,
    dbName: process.env.MONGO_DB,
  },
};

Oauth2 的介绍

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,是用来授权第三方应用。

传统方式的缺陷

  • 为了后续的服务,会保存用户的密码,这样很不安全。
  • 没法限制用户获得授权的范围和有效期。
  • 用户只有修改密码,才能收回赋予第三方应用的权力。
  • 只要有一个第三方应用程序被破解,就会导致用户密码泄漏,以及所有被密码保护的数据泄漏。

Oauth2 的思路

  • OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(authorization layer)
  • 客户端"不能直接登录"服务提供商",只能登录授权层,以此将用户与客户端区分开来。
  • "客户端"登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。

Token 的优点

  • 令牌是短期的,到期会自动失效,用户自己无法修改。
  • 令牌可以被数据所有者撤销,会立即失效。
  • 令牌有权限范围(scope)

Oatuh2 的授权方式

  • 授权码(authorization-code)
  • 隐藏式(implicit)
  • 密码式(password):
  • 客户端凭证(client credentials)
    图片描述
点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Python工程师
手记
粉丝
0
获赞与收藏
0

关注TA,一起探索更多经验知识

同主题相似文章浏览排行榜

风间影月说签约讲师

51篇手记,涉及Java、MySQL、Redis、Spring等方向

进入讨论

Tony Bai 说签约讲师

151篇手记,涉及Go、C、Java、Python等方向

进入讨论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消