Node.js环境下Aws-chime-sdk加入会议/join接口鉴权不生效问题
AWS Chime SDK 加入会议鉴权不生效解决方案
根因说明
你修改的exports.join没有被执行,核心是请求路由没有绑定到这个导出方法,Chime官方示例的路由逻辑不会默认将/join路径对应到exports.join,需要手动确认绑定关系。
排查&修改步骤
- 第一步:确认路由绑定配置
如果你用的是Chime官方Serverless示例,首先打开项目根目录的serverless.yml,找到functions配置块,检查加入会议的函数配置:
如果没有用Serverless框架,直接查看functions: joinMeeting: # 这里的函数名可自定义 handler: handler.join # 必须明确指定为你写的handler.js中的join方法 events: - http: path: join # 和你表单提交的路径一致 method: post # 和你表单的提交method一致 cors: truehandler.js的全局入口逻辑,一般会有统一的主处理函数,根据event.path和event.httpMethod分发请求,确认/join路径的请求是否指向了你写的join方法。 - 第二步:调整鉴权逻辑位置
确认路由绑定正确后,将你的鉴权逻辑放在join方法最开头,在获取会议逻辑之前执行,鉴权失败直接返回错误即可,示例如下:exports.join = async (event, context, callback) => { console.log("join接口被调用"); // 你的自定义鉴权逻辑 const isAuth = await checkUserLogin(event) if (!isAuth) { return response(401, 'application/json', JSON.stringify({msg: "登录状态无效,无法加入会议"})) } // 原有加入会议逻辑 let meeting = await getMeeting(query.title); if (!meeting) { // 创建会议逻辑 } return response(200, 'application/json', JSON.stringify({ JoinInfo: { Meeting: meeting, Attendee: attendee, }, }, null, 2)); }; - 第三步:验证生效
修改完成后重新部署服务(本地测试需要重启开发服务),提交加入会议表单,即可看到join方法的日志输出,鉴权逻辑会正常执行。
内容的提问来源于stack exchange,提问作者Sandro Benevides
相关产品推荐
相关产品推荐

