使用 Django 进行 Firebase 令牌身份验证

问题描述 投票:0回答:2

我是 django 新手,正在尝试使用 firebase admin sdk 对用户进行身份验证。我正在尝试进行令牌身份验证,并在我的 django 应用程序中设置了 admin sdk。我还收到了 Android 应用程序中的客户端 ID 令牌。

现在我无法理解如何将此 ID 发送到后端并验证其作为用户并相应地创建用户。我确实找到了 this 答案,但无法真正理解如何进行此操作。

此外,如果用户已通过验证,我如何添加和更新其数据。我需要再次传递令牌还是有其他方法可以做到这一点?

django django-rest-framework firebase-authentication firebase-admin
2个回答
1
投票

您的 Android 应用程序应将其 ID 令牌与发送到后端服务器的所有请求一起发送。您可以决定如何包含它(作为标头、作为 JSON 负载的一部分等)。在后端服务器中,如果令牌验证失败,您应该始终调用

auth.verify_id_token()
并返回错误(例如 401 Unauthorized)。


0
投票

验证每个请求的身份验证令牌是维护应用程序安全性和完整性的一个重要方面。以下是这种做法很重要的几个原因:

1. Ensures User Identity:

颁发身份验证令牌来验证用户的身份。通过验证每个请求上的令牌,您可以确认与该令牌关联的用户与最初获得该令牌的用户相同。

 2. Prevents Unauthorized Access:

定期验证可防止使用过期或撤销的令牌,确保只有经过身份验证和授权的用户才能访问受保护的资源。

 3. Mitigates Token Hijacking:

如果令牌被泄露(例如,被盗或拦截),在每个请求上验证它可以让系统检测未经授权的使用并采取适当的操作,例如终止会话或提示重新身份验证。

 4. Supports Session Management:

定期验证有助于有效管理用户会话。它允许服务器跟踪用户的活动,并在一段时间不活动后自动将其注销。

 5. Enhances Security against Token Tampering:

验证令牌有助于确保它们在传输过程中没有被篡改。对令牌内容的任何修改(例如更改用户角色或权限)都可以被检测到并拒绝。

6. Adheres to Best Security Practices:

定期令牌验证被认为是网络安全的最佳实践。它增加了针对各种安全威胁的额外保护层,包括令牌重放攻击和中间人攻击。

 7. Facilitates Token Revocation:

如果需要在令牌过期之前撤销用户的访问权限(例如,由于安全事件或帐户泄露),定期验证可以立即检测到无效令牌。

8. Supports Single Sign-On (SSO) Experiences:

对于采用 SSO 的应用程序,验证每个请求上的令牌可以通过一致地确认用户身份来确保跨多个服务的无缝且安全的体验。

9. Meets Compliance Requirements:

许多数据保护和隐私法规要求严格的访问控制和身份验证机制。定期验证身份验证令牌有助于满足这些合规性标准。

总之,您应该再次传递令牌,因为在每个请求上验证身份验证令牌是维护安全可靠的身份验证系统、保护用户和应用程序免受潜在安全威胁和未经授权访问的基本实践。

© www.soinside.com 2019 - 2024. All rights reserved.