Как использовать пользовательский URL подтверждения в Devise - PullRequest
0 голосов
/ 02 мая 2020

Я ищу способ использования URL-адреса, предоставленного в качестве параметра в запросе POST, для создания пользователя в качестве URL-адреса подтверждения для подтверждения моей пользовательской модели Devise. Случай использования: у меня есть приложение rails, выступающее в качестве API для приложения взаимодействия с внешним интерфейсом (настройка с использованием веб-пакета), и я хочу, чтобы URL-адрес в письме с инструкциями для подтверждения отправлялся пользователю для ссылки на приложение внешнего интерфейса, которое затем отправляло бы Запрос API к бэкенду вручную подтверждает пользователя, а не пользователя, посещающего сами URL-адреса моего бэкэнда API.

Я хочу, чтобы бэкэнд мог потенциально использоваться с другими клиентами в будущее, поэтому используемый URL должен быть переменным. В настоящее время я пытаюсь передать его в запросе API для создания пользователя, а затем каким-то образом мне понадобится способ передать эту переменную в почтовую программу Devise.

Конечная цель выглядит примерно так:

# app/views/devise/mailer/confirmation_instructions.html.erb
<p>Welcome <%= @email %>!</p>

<p>You can confirm your account email through the link below:</p>

<p><%= link_to 'Confirm my account', @custom_confirmation_url ?  "#{@custom_confirmation_url}#{@token}" : confirmation_url(@resource, confirmation_token: @token) %></p>

, где @custom_confirmation_url - это переменная, содержащая значение URL, переданного в запрос POST для регистрации нового пользователя.

Я потенциально думал о том, чтобы просто перенаправить пользователя на мой веб-интерфейс после подтверждения, с чем-то вроде this , но я не понимаю, как заставить его работать с несколькими клиентами веб-интерфейса, если бы я пошел по этому пути.

Я открыт для размышления о том, стоит ли рассматривать этот подход или нет, или есть более стилистически правильный способ достижения этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...