为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Node.js

课程名称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)
    图片描述
点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消