firebase - 使用 slack 登录并验证来自 Firebase 后端对 Angular 应用程序的请求
问题描述
我已经使用 angular material 和 firebase 函数 + realtime DB 作为后端构建了一个 webapp。我正在使用松弛的“使用 Slack 登录”API oauth 流。一切正常,我能够在后端生成一个 accessToken,我可以将它存储在实时数据库中。完成后,我在仪表板页面上对我的 Angular 应用程序进行重定向调用。目前我在重定向 url 中传递用户 ID,我用它来驱动用户到仪表板并显示他的数据。
这在功能上可以正常工作,但这是一个很大的安全问题。因为我可以直接输入重定向网址和繁荣。我在仪表板中。
那么,我该如何解决呢?我应该在安全的 url 重定向中做什么并验证响应是有效请求的结果?
解决方案
我不熟悉 Slack OAuth SDK,但总的来说,所有 OAuth 提供者都是如此。理想情况下,在您使用 slack 授权代码重定向到回调 URL 并在将该访问令牌返回给客户端之前将身份验证代码交换为 Slack 访问令牌时,您调用 Slack API 以获取带有 Slack 用户 ID访问令牌,然后使用该 uid 铸造一个 Firebase 自定义令牌。然后,您将该自定义令牌返回给客户端,然后signInWithCustomToken
. 确保您正在检查该state
字段(您在启动 Slack 登录时设置的)以及 Auth 代码,以验证流程是否在同一设备上开始和结束。
推荐阅读
- r - 如何删除向量中包含的 tibble 列名称?
- c++ - 使用 ESP32 在蓝牙终端中显示 NEO 6M 数据
- html - 向 HTML 视频添加动态播放按钮
- python - 使用 ComboboxSelected 对 tkinter 组合框选择进行事件驱动管理
- ruby - 在任何 gem 源中找不到 gem 'another-jekyll-plugin x64-mingw32'
- python - PyTorch 反向传播的数值等价性
- python - Django 查询
- angular - 角度翻译管道不起作用,无法从 JSON 中获取数据
- ruby-on-rails - 如何在没有字段名称作为前缀的字段名称上添加自定义验证消息?
- sass - 如何在 SASS 中检查地图的索引?