首页 > 解决方案 > 使用 slack 登录并验证来自 Firebase 后端对 Angular 应用程序的请求

问题描述

我已经使用 angular material 和 firebase 函数 + realtime DB 作为后端构建了一个 webapp。我正在使用松弛的“使用 Slack 登录”API oauth 流。一切正常,我能够在后端生成一个 accessToken,我可以将它存储在实时数据库中。完成后,我在仪表板页面上对我的 Angular 应用程序进行重定向调用。目前我在重定向 url 中传递用户 ID,我用它来驱动用户到仪表板并显示他的数据。

这在功能上可以正常工作,但这是一个很大的安全问题。因为我可以直接输入重定向网址和繁荣。我在仪表板中。

那么,我该如何解决呢?我应该在安全的 url 重定向中做什么并验证响应是有效请求的结果?

标签: firebasesecurityfirebase-authenticationslack-apiangular6

解决方案


我不熟悉 Slack OAuth SDK,但总的来说,所有 OAuth 提供者都是如此。理想情况下,在您使用 slack 授权代码重定向到回调 URL 并在将该访问令牌返回给客户端之前将身份验证代码交换为 Slack 访问令牌时,您调用 Slack API 以获取带有 Slack 用户 ID访问令牌,然后使用该 uid 铸造一个 Firebase 自定义令牌。然后,您将该自定义令牌返回给客户端,然后signInWithCustomToken. 确保您正在检查该state字段(您在启动 Slack 登录时设置的)以及 Auth 代码,以验证流程是否在同一设备上开始和结束。


推荐阅读