带有令牌的确认电子邮件来自 Rails API + React 应用程序。如果是 api 重定向到哪里?

Confirmation email with token From Rails API + React app. Where to redirect if it's an api?

我有两个独立的应用程序,一个 Rails 只有 API 和一个 React 应用程序。我正在尝试使用电子邮件(具有令牌)中的 link 对用户进行身份验证。

我目前拥有的是:

1 在 React App 中,用户按下 login with fb 按钮,使用 fb 登录。 2 通过 fb 响应,我向 Rails API 发送请求,并将用户保存在 Rails API 数据库中。 3 在 Rails API 之后,我向用户发送一封电子邮件,以便他可以单击带有令牌的 link 4 用户单击电子邮件中的 link,Rails API 收到带有令牌的请求,并在数据库中激活用户。

我的问题来了。因为它是一个 api,我不能用一个 html 页面来回应,现在你已经通过身份验证,请重新登录或其他。

我该怎么办? 1) 有没有办法从 API 将用户发送到反应 URL?我的意思是,用户转到我的 React 应用程序的页面 2) Rails API 是否应该生成带有令牌的 link,但基于 React 域,一旦用户单击电子邮件中的 link,以某种方式转到React 应用程序,而不是 rails api,然后从 React 应用程序使用此令牌将请求发送到 rails api?这样,当 Rails Api 响应时,我可以使用 React 导航到另一个页面,因为我在 React 应用程序中

电子邮件的确认信息如下所示:

  resources :users, only: [] do
    member do
      get :confirm_email
    end
  end

在找到用户后,该操作会在某个时候执行此操作:

  def email_activate
    self.email_confirmed = true
    self.confirm_token = nil
    save!(:validate => false)
  end

电子邮件中的 link 如下所示:

<%= confirm_email_user_url(@user.confirm_token) %>

我对 rails 一无所知,但这是一个通用的答案。

我会在你的 React 应用程序中为你的激活页面创建一个 UI。 url 可以如下所示:myreactapp.com/activate?token=<insert_activation_token_here>.

这条路会很好UI。在此路径的前端或后端(以更方便的为准),您可以与您的 API 通信并传递令牌。 url 可以如下所示:myapi.com/activate?token=<token_from_react>.

收到来自 API 的响应后,此页面可以显示成功或失败屏幕或您喜欢的任何内容。


编辑:这似乎是一个更具架构性和主观性的问题,因此可能有多种解决方案。