Итак, у меня есть 2 приложения, которые должны работать вместе. У меня есть app1 — приложение, которое будут использовать только наши сотрудники, и app2 — приложение customer_portal, где клиенты могут войти в систему и оплатить свой баланс. Я пытаюсь сделать так, чтобы в app1 мы могли создать учетную запись клиента и связать ее с конкретными клиентами. Этот процесс будет использовать devise_invitable для создания учетной записи для app2 и отправки выбранному клиенту по электронной почте ссылки для настройки своего приложения портала (которое просто принимает приглашение), но по какой-то причине ссылка приглашения не работает и просто перенаправляет на домашнюю страницу. . Таким образом, в основном app2 не может зарегистрировать учетную запись, учетная запись должна быть создана через app1 и отправлена клиенту по электронной почте.
Я слышал от кого-то, что он должен перенаправляться только в том случае, если URL-адрес неверен. Но это URL-адрес, созданный с помощью функции приглашения.
PortalUser.invite!({:name => params[:name], :email => params[:email]}, current_user)
Эта ссылка автоматически отправляется по электронной почте http://localhost:3000/portal_users/invitation/accept.20?invitation_token=p7UKK8Z8nKn4busWerpx.
У меня также есть возможность повторно отправить электронное письмо с приглашением на случай, если клиент запросит, но это отправит ту же ссылку по электронной почте.
PortalUser.find(params[:id]).deliver_invitation
Одна вещь, о которой я мог подумать, это то, что ключи шифрования-дешифрования различны для двух разных приложений, поэтому, когда app2 пытается расшифровать токен, он просто выглядит как неправильный токен. Если это так, знаете ли вы, как я могу изменить эти ключи, чтобы они соответствовали? Или, скорее, дайте app1 ключ шифрования app2 и скажите devise использовать этот ключ шифрования для всех приглашений или учетных записей для app2.
Редактировать: Итак, я обнаружил, что могу назначить secret_key в config/initializers/devise.rb, и он будет работать, если оба приложения используют один и тот же ключ. Однако у меня все еще есть вопрос, представляет ли это проблему безопасности?