如何使用 Flask Security 将密码重置 url 设置为移动深度链接?

How to set password reset url to a mobile deeplink using Flask Security?

问题的要点是,我不是在开发 SPA,而是在开发一个移动应用程序,后端在 Flask 中。 FlaskSecurityToo 为我提供了一些很棒的功能,我现在正在尝试使用他们的密码重置功能。这是我的抱怨。

我想让电子邮件发送一个深层链接,移动应用程序上的用户将点击该链接并将其发送到应用程序上的密码重置表单。没有 UI 视图。但是 FlaskSecurityToo 的逻辑要求首先访问服务器以验证令牌,然后将它们重定向到 REDIRECT_HOST 设置的任何内容。当我将 REDIRECT_BEHAVIOR 设置为 spa

时效果很好

有没有办法告诉 Flask“嘿,不用担心需要验证最初提供的密码重置电子邮件中的令牌,让 UI/Mobile 应用程序进行调用从提供的配置中确定他们想要什么时候? 因此,只要令牌存在,就可以放宽对密码重置的主机名/详细信息的限制 url?或者这是滥用了一些我还没有掌握的 FlaskSecurity 原则?

我目前的计划是让它打开移动浏览器,希望重定向强制打开应用程序?我对深层链接经验不多,所以我正在测试和探索我所学的东西。

你对当前 FS 行为的看法是正确的 - 这是一个建议(不干净,但如果它是你所需要的,那会很有趣) - POST /reset/ 端点是独立的 - 你不不必先调用 GET - POST 还将验证令牌是否有效。因此,问题就变成了如何为包含您想要的内容的电子邮件生成 link。 FS 目前不允许配置这个(这可能是一个增强) - 但在 4.0.0 中你可以轻松替换 MailUtil class 并让你的 send_mail 实现寻找 template='reset_instructions'.现在 - 此时电子邮件已经呈现 - 因此您必须解析正文并重写 url (保持令牌完好无损)。丑陋但可行——这就足够了吗?如果是这样,我可以在 FS 中看到一些简单的改进,以允许更灵活地处理电子邮件。