- 一、什么是 Serverless
- 二、编写你的第一个 Serverless 应用
- 三、Serverless 应用是怎么运行的
- 四、如何提高应用开发调试和部署效率
- 五、serverless 应用
- 阿里云函数计算
- 腾讯云函数
- 使用 vercel 部署你的应用-推荐
- 六、场景案例
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
2.5 身份认证
在完成了注册登录接口后,我们再来看一下内容管理系统中,身份认证应该怎么实现。
在之前,我们实现了一个 Express.js 框架的身份认证中间件,用来拦截所有请求,身份认证通过后才能进执行后面的代码逻辑。在内容管理系统中,你也可以参考 Express.js 的思想,实现一个 auth.js 专门用于身份认证,代码如下:
// src/middleware/auth.js const jwt = require("jsonwebtoken"); const { jwt_secret } = require("../config/index"); /** * 身份认证 * @param {object} event API 网关的 event 对象 * @return {object} 认证通过后返回 user 信息;认证失败则返回 false */ const auth = function (event) { try { const data = JSON.parse(event.toString()); if (data.headers && data.headers.Authorization) { const token = JSON.parse(event.toString()) .headers.Authorization.split(" ") .pop(); const user = jwt.verify(token, jwt_secret); return user; } return false; } catch (error) { return false; } }; module.exports = auth;
- 其原理很简单,就是从 API 网关的 event 对象中获取 token,然后验证 token 是否正常。如果认证通过,就返回 user 信息,失败就返回 false。
- 这样在需要身份认证的函数中,你只引入 auth.js 并传入 event 对象就可以了。下面是一个简单的示例:
const auth = require('./middleware/auth'); module.exports.handler = function (event, context, callback) { // 使用 auth 进行身份认证 const user = auth(event); if (!user) { // 若认证失败则直接返回 return callback('身份认证失败!') } // 通过身份认证后的业务逻辑 // ... callback(null); };
除了登录注册,其他接口都需要身份认证,所以接下来我们就通过实现“发布文章”函数来实际使用 auth.js。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论