Я использую Квартира и Devise драгоценный камень для Muti-аренда и аутентификация.Devise: Войти и перенаправить на субдомен
У меня есть страница sign_up
в URL-адресе корневого домена (example.com
), где я получаю данные субдомена от пользователя.
После успешного сохранения записи и перенаправления на новый субдомен мне нужно sign_in
(sub.example.com
).
квартира Schemas:
Account => Общие для всех схем (Public)
User => Созданный отдельно для каждого схем (Private)
RegistrationController:
class Users::RegistrationsController < Devise::RegistrationsController
...
...
def create
ActiveRecord::Base.transaction do
@account = Account.new(account_params)
if @account.valid?
# Create & switch to the new tenant
Apartment::Tenant.create(@account.subdomain)
Apartment::Tenant.switch!(@account.subdomain)
@account.save
sign_in(:user, @account.user)
redirect_to root_url(subdomain: "#{Apartment::Tenant.current}")
else
render :action => 'new'
end
end
end
...
...
protected
def account_params
params.require(:account).permit(:name, :subdomain, user_attributes: [:first_name, :last_name, :email, :password, :password_confirmation])
end
end
Вышеупомянутый код успешно перенаправляется на новый поддомен, но он не является подписью пользователя, хотя я подписываю его перед перенаправлением.
Любой, пожалуйста, помогите мне перенаправить пользователя как signed_in
в новый поддомен.
Спасибо ..
ли перенаправление на 'root_url' сохраняет куки сессии? – 31piy
@ 31piy, я попытался удалить аутентификацию в root_url и попытался распечатать сеанс 'p session ['warden.user.user.key']' в действии контроллера, но он возвращает 'nil' –
. Проверьте, совпадают ли идентификаторы сеанса до и после перенаправления. – 31piy