1

omniath-identity gem用于身份验证系统。我将 gem 添加到 Gemfile。omniauth.rb我还为omniauth配置设置了文件。

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :identity
end

我浏览下面的链接。

http://localhost:3000/auth/identity

它显示了omniauth-identity的登录页面。我想创建自己的 cstom 登录页面。我不想看到omniauth 的登录页面。如何删除或更改此页面以及如何添加我的自定义登录页面?

提前致谢。

4

1 回答 1

0

有一个关于使用omniauth-identity的很好的铁路广播,你应该在http://railscasts.com/episodes/304-omniauth-identity?view=asciicast上查看

但总而言之,为了覆盖登录页面,您需要创建一个名为identities的控制器

rails g controller identities

内容将类似于

class IdentitiesController < ApplicationController
  def new
    @identity = env['omniauth.identity']
  end
end

然后你可以创建一个自定义视图

<h1>New Account</h1>

<%= form_tag "/auth/identity/register" do %>
  <% if @identity && @identity.errors.any? %>
    <div class="error_messages">
      <h2><%= pluralize(@identity.errors.count, "error") %> prohibited this account from being saved:</h2>
      <ul>
      <% @identity.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>
  <div class="field">
    <%= label_tag :name %><br>
    <%= text_field_tag :name, @identity.try(:name) %>
  </div>
  <div class="field">
    <%= label_tag :email %><br>
    <%= text_field_tag :email, @identity.try(:email) %>
  </div>
  <div class="field">
    <%= label_tag :password %><br>
    <%= password_field_tag :password %>
  </div>
  <div class="field">
    <%= label_tag :password_confirmation %><br>
    <%= password_field_tag :password_confirmation %>
  </div>
  <div class="actions"><%= submit_tag "Register" %></div>
<% end %>

只需查看 railcast 视频,一切都在那里

于 2013-03-06T08:35:34.233 回答