简体   繁体   English

使用Bootstrap Modal通过AJAX进行Rails 5 Devise登录

[英]Rails 5 Devise login via AJAX using Bootstrap Modal

Currently, I am trying to get a regular Devise sign_in form working using AJAX using bootstrap modals. 目前,我正在尝试通过引导模态使用AJAX来获取常规的Devise登录表单。 The sign_in part works fine on a server side - user get signed in, but the problem is I can't get front end request handling in place as JS is not firing. sign_in部分在服务器端可以正常工作-用户已登录,但问题是由于JS未触发,我无法就位进行前端请求处理。

sessions_controller.rb #create session_controller.rb#创建

  def create
    resource = User.find_for_database_authentication(email: params[:user][:email])
    return invalid_login_attempt unless resource

    if resource.valid_password?(params[:user][:password])
      sign_in :user, resource
      return render :json => {:success => true}
    end

    invalid_login_attempt
  end

This part works fine - user gets signed in with 200 "success" response in the request. 这部分工作正常-用户在请求中使用200个“成功”响应登录。

Sign in form (default one for devise) 登录表单(用于设计的默认表单)

<%= form_for(resource, url: session_path(:user), remote: true) do |f|  %>
  <%= f.email_field :email, autofocus: true, placeholder: 'Email', class: "form-control center-block" %>

  <%= f.password_field :password, placeholder: 'Password', autocomplete: "off", class: 'form-control center-block' %>

  <%= f.submit 'log in', class: 'center-block btn btn-sp btn-lg'%>
<% end %>

Form is pre-rendered with hidden Bootstrap modal which of course get visible on click. 表单是使用隐藏的Bootstrap模态预先渲染的,单击该模态当然是可见的。

And the JS which is not firing 还有不点火的JS

$(document).on('ajax:success', '#new_user', function(){
  console.log("in");
});

I tried ajaxSuccess , older .bind syntax, putting JS at app level and rendered right after the form, but can't seem to get that JS to fire and I am running out of ideas, so any help is appreciated. 我尝试ajaxSuccess更旧的.bind语法ajaxSuccess ,将JS置于应用程序级别,并在表单之后立即呈现,但是似乎无法启动JS并且我用尽了所有想法,因此感谢您的帮助。 Running on Rails 5, Ruby 2.3.1, jquery-rails 4.1.1. 在Rails 5,Ruby 2.3.1,jquery-rails 4.1.1上运行。

我相信您可以将本文作为起点http://blog.andrewray.me/how-to-set-up-devise-ajax-authentication-with-rails-4-0/ ,然后进行隐藏/显示响应时的模态窗口。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM