Rin*_*n S 7 python authentication google-app-engine firebase firebase-authentication
嗨,我的网站在 appengine 上运行,使用 Flask 作为后端框架,我们使用 Flask-OAuth、Flask-Login 库构建了身份验证和会话管理。
但是现在我需要使用 firebase 进行身份验证。我可以按照 firebase 教程创建示例应用程序,但我不知道如何与现有应用程序集成。
在 firebase 团队提供的 Firenotes 示例中,他们使用两个独立的服务前端和后端。
我想在 login.html 页面中使用 firebase 代码,一旦客户端通过身份验证将信息传递给 /profile url -> 在数据库中记录 user_id 并使用 Flask-Login 登录用户。
我不确定上述流程是否正确,我不保证将来它是正确的,没有任何问题。
请帮助提供任何想法,因为我需要尽快实施!!
Flask-Login 使用基于会话的身份验证。客户端使用身份验证方案登录。由于您使用的是 Flask-OAuth,因此是 oauth 流程。如果用户成功通过身份验证,Flask-Login 在令牌交换步骤期间发送响应,设置一个仅 HTTP cookie(意味着 javascript 无法访问它)以及用户会话唯一的令牌。然后,客户端使用该令牌对会话期间的未来请求进行身份验证。服务器可以随时使会话无效,强制客户端重新登录。
同时,firebase 身份验证是 JSON Web Token (JWT) 身份验证方案。完成登录流程后,firebase API 从 google 的应用程序服务器检索 JWT。
要对请求进行身份验证,您需要在每个请求上传输该 JWT。您的服务器还必须验证 JWT 以确保它既有效又未过期。
您会注意到,Firebase SDK 和库未指定 JWT 到达服务器的方式。我建议使用Authentication: JWT <google's jwt>
标题。
解决您的问题的一种方法是使用 JWT 完成初始登录流程,然后从那里依赖基于会话的身份验证。您将设置一个登录端点,该端点期望并验证 JWT,并使用设置的 cookie 标头进行响应。从那时起,您将继续使用您的flask-login 提供的基于会话的身份验证。
谷歌实际上在他们的文档中有一个例子:https : //firebase.google.com/docs/auth/admin/manage-cookies
归档时间: |
|
查看次数: |
7512 次 |
最近记录: |