我有一个基于Rails的API,已经成功集成了Devise。我剩下的一个问题是如何处理电子邮件(确认和重置密码)。设计会自动发送这些带有其视图链接的电子邮件。由于API不应处理视图,处理此问题的最佳方法是什么?我的问题是:
谢谢。
答案 0 :(得分:0)
我已经将Devise用于一些仅限API的Rails项目。坦率地说,恕我直言,设计对这些项目来说太沉重了。我爱设计,但有很多魔术和假设。其中一个假设是您将使用传统的Rails视图。这不是你问的问题,但是你可以查看其他一些身份验证库,比如https://github.com/thoughtbot/clearance。
1)我没有看到您的客户端应用程序拥有电子邮件模板的方法。此操作完全发生在您的客户之外。 Rails正在发送电子邮件,然后您的用户可以使用他们的电子邮件客户端查看(我假设您的客户端应用程序实际上不是电子邮件客户端)。
我认为在这种情况下,Rails api是电子邮件模板的合适位置。我想不出你可以让你的客户端应用程序参与其中的方式。即使你可以,你为什么要这样做呢?
2)有几种方法可以处理密码重置的链接。正如您所说,您可以做的第一件事就是抓取数据并编写自己的视图。但这似乎是相当多的工作,你最终可能会与Devise斗争很多。
一个简单的解决方案就是让Devise拥有这些东西,并使用Rails视图。它很乱,但简单易行。设计是非常自以为是,这是阻力最小的路径。在我看来,你正试图在这里游泳,基于分离关注的原则。我认为使用Devise会很难做到这一点。
如果你真的必须让你的客户端应用程序呈现所有视图,包括此功能的视图,那么你可能会考虑只是滚动你自己的密码重置功能并保持Devise不在混合中。