I am integrating discourse single sign on with hotwire rails application, everything works fine till redirection, when it redirects I see there is CORS issue browser, ofcourse its turbo request so it attempts to fetch response from give URL so it throws CORS error, How we can do actual redirection here?.
def sso
secret = "572890bb92bbef8c4634c1bf"
sso = SingleSignOn.parse(request.query_string, secret)
sso.email = current_user.email # from devise
sso.name = current_user.name # this is a custom method on the User class
sso.username = current_user.username # from devise
sso.external_id = current_user.id # from devise
sso.sso_secret = secret
redirect_to sso.to_url("https://xxxxxxxx/session/sso_login")
end
Edit(1)
<main class="main-content">
<div class="d-flex justify-content-center">
<div>
<div class="mt-48 py-48 px-md-48 px-32 border-radius-lg log-in-card box-shadow-05">
<h4 class="font-size-24 text-black font-weight-400 mb-0">Member Login</h4>
<%= form_for(resource, as: resource_name, url: session_path(resource_name), html: {class: 'mt-48'}) do |f| %>
<div class="form-group mb-0">
<%= f.label :email, class: "font-weight-500 font-size-14 text-black" %>
<%= f.email_field :email, autofocus: true, autocomplete: "email", class: 'form-control-lg form-control' %>
</div>
<div class="form-group position-relative mt-32">
<%= f.label :password, class: "font-weight-500 font-size-14 text-black" %>
<%= f.password_field :password, autocomplete: "current-password", class: 'form-control-lg form-control' %>
<div class="position-absolute eye-icon"><i class="far fa-eye-slash font-size-14 text-black"></i></div>
</div>
<div class="d-flex flex-column align-items-center mt-32">
<%= f.submit "Login", class: 'btn btn-brand-primary py-12 px-48 text-decoration-none' %>
<%- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' %>
<%= link_to "Forget password?", new_password_path(resource_name), class: 'text-decoration-none text-brand-primary font-weight-600 font-size-14 mt-32' %>
<% end %>
</div>
<% end %>
</div>
<div class="d-flex justify-content-center mt-48">
<span class="text-black font-weight-500 font-size-14 text-decoration-none">Not a member?</span>
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
<%= link_to "Create Account", new_registration_path(resource_name), class: 'text-brand-primary font-weight-600 font-size-14 text-decoration-none ml-8' %>
<% end %>
</div>
<div class="d-flex flex-md-row flex-column align-items-center justify-content-center mt-48 mb-96 pb-md-64">
<span class="text-black font-weight-500 font-size-14 text-decoration-none">Didn't receive confirmation
instructions?</span>
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
<%= link_to "Request again", new_user_confirmation_path(resource_name), class: 'text-brand-primary font-weight-600 font-size-14 text-decoration-none ml-8'%>
<% end %>
</div>
</div>
</div>
</main>
I have used data-turbo="false"
in signin form, it will send HTML request to backend because of that when I do redirect it will redirect the whole page. Thanks
https://turbo.hotwire.dev/handbook/drive#disabling-turbo-drive-on-specific-links-or-forms