如何从静态网站向 rails 应用发出 post 请求?
How to do post request from a static site to rails app?
我首先在一个域 app.example.com
中创建了 rails 应用程序,在另一个域 www.example.com
中创建了静态站点。然后在 rails 应用程序中添加 devise
gem 并在静态站点中创建一个登录表单。这是登录表单的代码:
<form action="app.example.com/users/sign_in" method="post">
<input name="utf8" type="hidden" value="✓">
Email:<input type="text" name="email" value="admin@gmail.com">
Password:<input type="password" name="password" value="password">
<input name="authenticity_token", value="", type="hidden">
<button>Submit</button>
</form>
是否可以在从静态站点登录后重定向到 rails 应用程序,因为它需要 authenticity_token 并且很难在静态站点中生成 authenticity_token 而且可能还有csrf
.
期
您可以通过继承 Devise::SessionsController
来禁用此操作的 CSRF protection。
# app/controllers/my_sessions_controller.rb
class MySessionsController < Devise::SessionsController
skip_before_action :verify_authenticity_token, only: :create
end
确保更改 config/routes.rb
中的 devise_for :users
调用:
devise_for :users, controllers: { sessions: 'my_sessions' }
我首先在一个域 app.example.com
中创建了 rails 应用程序,在另一个域 www.example.com
中创建了静态站点。然后在 rails 应用程序中添加 devise
gem 并在静态站点中创建一个登录表单。这是登录表单的代码:
<form action="app.example.com/users/sign_in" method="post">
<input name="utf8" type="hidden" value="✓">
Email:<input type="text" name="email" value="admin@gmail.com">
Password:<input type="password" name="password" value="password">
<input name="authenticity_token", value="", type="hidden">
<button>Submit</button>
</form>
是否可以在从静态站点登录后重定向到 rails 应用程序,因为它需要 authenticity_token 并且很难在静态站点中生成 authenticity_token 而且可能还有csrf
.
您可以通过继承 Devise::SessionsController
来禁用此操作的 CSRF protection。
# app/controllers/my_sessions_controller.rb
class MySessionsController < Devise::SessionsController
skip_before_action :verify_authenticity_token, only: :create
end
确保更改 config/routes.rb
中的 devise_for :users
调用:
devise_for :users, controllers: { sessions: 'my_sessions' }