簡體   English   中英

將Rails + Devise用於API時處理電子郵件的最佳方法是什么

[英]What is the best way to handle emails when using Rails + Devise for an API

我有一個已成功集成Devise的基於Rails的API。 我還有一個問題是如何處理電子郵件(確認和重置密碼)。 Devise自動發送這些電子郵件以及指向其視圖的鏈接。 由於API不應該處理視圖,因此最好的處理方法是什么? 我的問題是:

  1. 自從Devise發送這些電子郵件以來,API是否必然包含一些html模板? 這些模板是否可以在客戶端使用?
  2. 如何處理包含確認令牌和reset_password_tokens之類信息的鏈接? 我不熟悉客戶端技術,但是鏈接是否應該指向客戶端的域,以便它可以捕獲,提取令牌並在后台進行呼叫?

謝謝。

我已經將Devise用於一些僅API的Rails項目。 坦率地說,恕我直言,Devise對此類項目的看法過於沉重。 喜歡設計,但是有很多魔術和假設。 假設之一是您將使用傳統的Rails視圖。 這不是您要的,但是FWIW您可能會簽出其他一些身份驗證庫,例如https://github.com/thoughtbot/clearance

1)我看不到您的客戶端應用程序具有電子郵件模板的方法。 此操作完全在客戶外部進行。 Rails正在發送電子郵件,您的用戶然后可以使用他們的電子郵件客戶端查看這些電子郵件(我假設您的客戶端應用實際上不是電子郵件客戶端)。

我認為在這種情況下,Rails api是電子郵件模板的適當位置。 我想不出一種可以讓您的客戶端應用程序參與其中的方法。 即使可以,為什么還要這么做?

2)有幾種方法可以處理指向密碼重置的鏈接。 正如您所說的,您要做的第一件事就是簡單地獲取數據並編寫您自己的視圖。 但這似乎需要大量工作,而且您可能最終會與Devise爭斗很多。

一個簡單的解決方案是讓Devise擁有這些東西,並使用Rails視圖。 雜亂無章,但簡單易行。 設計很固執,這是阻力最小的途徑。 在我看來,您是根據關注點分離的原則,試圖在這里上游游泳。 我認為使用Devise很難做到這一點。

如果確實必須讓客戶端應用程序呈現所有視圖(包括此功能的視圖),那么您可以考慮僅滾動自己的密碼重置功能並將Devise排除在外。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM