Omniauth Identity is a great identity provide that shipped with Omniauth 1.0 it can be a bit simple at times. I wanted to add a simple terms and conditions check on signup to my registration form and this is what I came up with.
For this example I assume you already have a Omniauth Identity setup much like explained in this Railscast.
app/views/identities/new.html.erbAdd a checkbox to your form.
<div class="field">
<%= label_tag :conditions %><br>
<%= check_box_tag :conditions %>
</div>app/models/identity.rbAdd a attribute to your identity model and check for it to be set.
class Identity < OmniAuth::Identity::Models::ActiveRecord
...
validates :conditions, acceptance: true, allow_nil: false, on: :create
attr_accessor :conditions
...
endYou should really only check this on create, otherwise this validation will
run every time the identity gets updated, unless of course you decide to store
the conditions value in the database.
config/initializers/omniauth.rbThis is the one that took me the longest to figure out. You need to tell Omniauth Identity what fields to look for on signup.
Rails.application.config.middleware.use OmniAuth::Builder do
provider :identity, fields: [:email, :conditions]
endIn the same way you can add a users name and other details, though I highly
recommend you dont store those on the Identity but on the User model.