Im, используя devise
в моем приложении rails и все работает нормально, что я пытаюсь сделать сейчас, это разрешить пользователям входить в мое приложение, используя их учетную запись github и создавать профиль.Создайте пользователя auth с помощью devize
User.rb
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable
has_one :profile
after_create :build_profile
def build_profile
self.create_profile
end
def self.create_with_omniauth(auth)
user = first_or_create do |user|
user.provider = auth['provider']
user.uid = auth['uid']
user.email = auth['info']['email']
user.password = Devise.friendly_token[0,20]
end
end
end
routes.rb
devise_for :users, :controllers => { :omniauth_callbacks => "callbacks" }
callbacks_controller.rb
class CallbacksController < Devise::OmniauthCallbacksController
def github
@user = User.from_omniauth(request.env["omniauth.auth"])
sign_in_and_redirect @user
end
end
Я побежал правильную миграцию добавить поставщика и Uid столбец в таблице пользователей
rails g migration AddColumnsToUsers provider uid
def change
add_column :users, :provider, :string
add_column :users, :uid, :string
end
конфигурации/Инициализаторы/devise.rb
config.omniauth :github, 'CLIENT_ID', 'APP_SECRET', :scope => 'user:email'
Когда я создать пользователя с помощью devise
все это прекрасно работает и созданы пользователи, но когда я нажимаю войти в систему с GitHub на моей странице регистрации она сливает Завещание учетной записи и учетной записи github, оставив мне одну учетную запись, не создавая учетную запись с учетными данными пользователя github. Даже если я попробую и войщу в систему с использованием двух разных учетных записей github, он по-прежнему по какой-то причине использует только первую учетную запись github.
проблема github пользователь может войти, но они не создаются как пользователи, используя их учетные данные github, мне нужно, чтобы пользователи вошли в систему и создали профиль со мной.