Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 谷歌公司;Facebook登录不会写入数据库_Ruby On Rails_Ruby_Authentication_Devise - Fatal编程技术网

Ruby on rails 谷歌公司;Facebook登录不会写入数据库

Ruby on rails 谷歌公司;Facebook登录不会写入数据库,ruby-on-rails,ruby,authentication,devise,Ruby On Rails,Ruby,Authentication,Devise,我正在进行社交媒体登录。如果我直接从我的应用程序创建帐户,它就可以工作。我现在正在实现Facebook和Google帐户登录。我遵循了本教程: 然而,由于某种原因,当我为这两个中的任何一个按下signin键时。它会将我发送到他们的登录页面,但当它返回时,它只会将我发送回登录页面,但不会将任何内容写入数据库。我的问题是,自2017年以来,本教程是否仍然有效。我到底错在哪里 这是我的gem文件: source 'https://rubygems.org' ruby '~> 2.6.6' #

我正在进行社交媒体登录。如果我直接从我的应用程序创建帐户,它就可以工作。我现在正在实现Facebook和Google帐户登录。我遵循了本教程:

然而,由于某种原因,当我为这两个中的任何一个按下signin键时。它会将我发送到他们的登录页面,但当它返回时,它只会将我发送回登录页面,但不会将任何内容写入数据库。我的问题是,自2017年以来,本教程是否仍然有效。我到底错在哪里

这是我的gem文件:

source 'https://rubygems.org'
ruby '~> 2.6.6'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '5.0.2'

# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'

# Use jquery as the JavaScript library
gem 'jquery-rails'
gem 'merit', '= 3.0.1'
# Used to implement at.js for auto complete mentions/emojis
gem 'jquery-atwho-rails'

# Use twitter bootstrap sass
gem 'bootstrap-sass', '~> 3.4.0'
gem 'autoprefixer-rails'
# gem 'font-awesome-rails'
# gem 'font-awesome5-rails', '~> 1.0', '>= 1.0.1'
gem 'font_awesome5_rails'

gem 'xbox_live_api'
gem 'faraday'
gem 'oj'

gem 'thredded', '~> 0.16.13'
gem 'rails-ujs'

group :development do
  gem 'spring'
  gem 'letter_opener'
  gem 'guard'
  gem 'guard-rspec', '~> 4.2.8'
  gem 'byebug'
end

group :development, :test do
  gem 'puma'
  gem 'sqlite3', '~> 1.3.6'

  # Use Dotenv for environment variables
  gem 'dotenv', '~> 2.2.1'
end

group :production do
  gem 'pg', '~>0.18'
  gem 'unicorn'
  gem 'cloudinary'
  gem 'rails_12factor'
  gem 'fog'
  gem 'fog-aws'
end

gem 'devise'
gem 'carrierwave'
gem 'friendly_id', '~> 5.0'

gem 'will_paginate', '~> 3.1.0'
gem 'public_activity'

gem 'acts_as_votable', '~> 0.10.0'
gem 'acts_as_commentable'
gem 'acts_as_follower'
gem 'counter_culture', '~> 0.1.33'

gem 'faker'
gem 'populator'
gem 'auto_html', '~>1.6.4'
gem 'sanitize'

gem 'active_model_serializers'

gem 'private_pub'
gem 'thin'

# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

# Use debugger
# gem 'debugger', group: [:development, :test]

gem 'round_robin_tournament'
gem 'tournament-system', '~> 2'
gem 'challonge-api'
gem 'tournament'

gem 'oauth2'
gem 'activerecord-session_store'

gem "simple_calendar", "~> 2.0"
gem 'opentok'

gem "omniauth", "~> 1.9.1"

# Use Omniauth Facebook plugin
gem 'omniauth-facebook', '~> 4.0'

# Use Omniauth Google plugin
gem 'omniauth-google-oauth2'
这就是终端上显示的内容:

Started GET "/users/auth/google_oauth2" for ::1 at 2021-04-06 20:41:47 -0700I, [2021-04-06T20:41:47.663699 #3568]  INFO -- omniauth: (google_oauth2) Request phase initiated.
   (0.0ms)  begin transaction
  SQL (2.5ms)  UPDATE "sessions" SET "data" = ?, "updated_at" = ? WHERE "sessions"."id" = ?  [["data", "BAh7CUkiEF9jc3JmX3Rva2VuBjoGRUZJIjFrdTA2d0NtU05RWmhWazVuNjlt\nZjRxdmNHYTZQQ1E3ZUpLRTBYYnQzdXdNPQY7AEZJIhRvbW5pYXV0aC5wYXJh\nbXMGOwBUewBJIhRvbW5pYXV0aC5vcmlnaW4GOwBUIihodHRwOi8vbG9jYWxo\nb3N0OjMwMDAvdXNlcnMvc2lnbl91cEkiE29tbmlhdXRoLnN0YXRlBjsAVEki\nNTcwMzg2YjMxZTdiNzEwZGNiN2QyNzFmM2UwY2ZkMTdiMmM2Nzg3NGQwMTMx\nMjlkMwY7AEY=\n"], ["updated_at", 2021-04-07 03:41:47 UTC], ["id", 2]]
   (8.2ms)  commit transaction
Started GET "/users/auth/google_oauth2/callback?state=70386b31e7b710dcb7d271f3e0cfd17b2c67874d013129d3&code=4%2F0AY0e-g6AHjEU9GwqapLtEAOhufzwoWKoghn00mG581GfaBvzapzjD0ggbBwrjG3v1J6tvQ&scope=email+profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+openid&authuser=0&prompt=none" for ::1 at 2021-04-06 20:41:47 -0700
I, [2021-04-06T20:41:48.012890 #3568]  INFO -- omniauth: (google_oauth2) Callback phase initiated.
Processing by Users::OmniauthController#google_oauth2 as HTML
  Parameters: {"state"=>"70386b31e7b710dcb7d271f3e0cfd17b2c67874d013129d3", "code"=>"4/0AY0e-g6AHjEU9GwqapLtEAOhufzwoWKoghn00mG581GfaBvzapzjD0ggbBwrjG3v1J6tvQ", "scope"=>"email profile https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openid", "authuser"=>"0", "prompt"=>"none"}
  User Load (0.5ms)  SELECT  "users".* FROM "users" WHERE "users"."provider" = ? AND "users"."uid" = ? ORDER BY "users"."id" ASC LIMIT ?  [["provider", "google_oauth2"], ["uid", "118353543471926940974"], ["LIMIT", 1]]
   (0.1ms)  begin transaction
  User Exists (0.4ms)  SELECT  1 AS one FROM "users" WHERE "users"."email" = ? LIMIT ?  [["email", "ben875717@gmail.com"], ["LIMIT", 1]]
   (0.0ms)  rollback transaction
Redirected to http://localhost:3000/users/sign_up
Completed 302 Found in 69ms (ActiveRecord: 1.0ms)


   (0.0ms)  begin transaction
  SQL (1.1ms)  UPDATE "sessions" SET "data" = ?, "updated_at" = ? WHERE "sessions"."id" = ?  [["data", "BAh7B0kiEF9jc3JmX3Rva2VuBjoGRUZJIjFrdTA2d0NtU05RWmhWazVuNjlt\nZjRxdmNHYTZQQ1E3ZUpLRTBYYnQzdXdNPQY7AEZJIgpmbGFzaAY7AFR7B0ki\nDGRpc2NhcmQGOwBUWwBJIgxmbGFzaGVzBjsAVHsGSSIKZXJyb3IGOwBGSSJg\nVGhlcmUgd2FzIGEgcHJvYmxlbSBzaWduaW5nIHlvdSBpbiB0aHJvdWdoIEdv\nb2dsZS4gUGxlYXNlIHJlZ2lzdGVyIG9yIHRyeSBzaWduaW5nIGluIGxhdGVy\nLgY7AFQ=\n"], ["updated_at", 2021-04-07 03:41:48 UTC], ["id", 2]]
   (6.4ms)  commit transaction
Started GET "/users/sign_up" for ::1 at 2021-04-06 20:41:48 -0700
Processing by Devise::RegistrationsController#new as HTML
  Rendering devise/registrations/new.html.erb within layouts/application
  Rendered devise/shared/_links.html.erb (0.9ms)
  Rendered devise/registrations/new.html.erb within layouts/application (10.4ms)
  Rendered shared/_navbar.html.erb (1.0ms)
  Rendered shared/_footer.html.erb (0.3ms)
Completed 200 OK in 300ms (Views: 298.9ms | ActiveRecord: 0.2ms)


   (0.2ms)  begin transaction
  SQL (1.2ms)  UPDATE "sessions" SET "data" = ?, "updated_at" = ? WHERE "sessions"."id" = ?  [["data", "BAh7BkkiEF9jc3JmX3Rva2VuBjoGRUZJIjFrdTA2d0NtU05RWmhWazVuNjlt\nZjRxdmNHYTZQQ1E3ZUpLRTBYYnQzdXdNPQY7AEY=\n"], ["updated_at", 2021-04-07 03:41:48 UTC], ["id", 2]]
   (6.6ms)  commit transaction
任何建议都将受到重视

编辑添加用户模型:

class User < ActiveRecord::Base
has_merit

belongs_to :referrer, :class_name => 'User', foreign_key: 'referred_by'

# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, :confirmable,
    :recoverable, :rememberable, :trackable, :validatable,
    :omniauthable, omniauth_providers: [:facebook, :google_oauth2]
acts_as_voter
acts_as_follower
acts_as_followable

has_many :posts
has_many :comments
has_many :events
has_many :tourneys
has_many :players
has_many :accounts
has_many :party_rooms
has_many :invitations

has_many :conversations, :foreign_key => :sender_id

before_create :generate_ref_token

#after_create :create_default_conversation
after_create :award_points_to_referrer
after_create :created_at_previous_change

mount_uploader :avatar, AvatarUploader
mount_uploader :cover, AvatarUploader

validates_presence_of :name

self.per_page = 10

extend FriendlyId
friendly_id :name, use: [:slugged, :finders]

def friends
    list = self.following_users.map do |user| 
        user if self.followed_by?(user)
    end

    list.compact.sort_by{ |user| user.name }
end

def upcoming_events
    list = self.events.where("event_datetime >= ?", Date.today)
    self.friends.each do |fr|
        list += fr.events.where("event_datetime >= ?", Date.today)
    end

    list.compact.sort_by{ |event| event.event_datetime }
end

def online?
    if current_sign_in_at.present? 
        last_sign_out_at.present? ? current_sign_in_at > last_sign_out_at : true
    else
        false
    end
end

def award_points_to_referrer
    if !self.referrer.nil?
        self.referrer.add_points(200, category: REFERRAL)
    end
end

def generate_ref_token
    if self.referral_token.nil?
        self.referral_token = loop do
            token = SecureRandom.urlsafe_base64(nil, false)
            break token unless User.exists?(referral_token: token)
        end
    end
end

def self.create_from_provider_data(provider_data)
    where(provider: provider_data.provider, uid: provider_data.uid).first_or_create do | user |
        user.email = provider_data.info.email
        user.password = Devise.friendly_token[0, 20]
        user.skip_confirmation!
    end
end
class用户“User”,外键:“refered\u by”
#包括默认设计模块。其他可供选择的项目包括:
#:可确认、:可锁定、:超时和:全授权
设计:数据库可验证,:可注册,:可确认,
:可恢复,:可记忆,:可跟踪,:可验证,
:omniauthable,omniauth\u提供者:[:facebook,:google\u oauth2]
充当选民
充当追随者
作为可遵循的行为
有很多帖子吗
有很多评论
你参加过很多活动吗
有很多:巡回赛
有很多:运动员
你有很多账户吗
有很多聚会室吗
有很多邀请吗
有多个:对话,:外键=>:发件人\u id
创建前:生成\u ref\u令牌
#创建后:创建默认对话
创建后:将积分奖励给推荐人
创建后:在上一次更改时创建
装载上传者:阿凡达,阿凡达上传者
mount_上传器:封面,头像上传器
验证是否存在:name
self.per_page=10
扩展友好ID
友好的\u id:name,用法:[:sluged,:finders]
def朋友
列表=self.following_users.map do|user|
用户(如果是自己)。后跟?(用户)
结束
list.compact.sort_by{| user | user.name}
结束
def即将举办的活动
list=self.events.where(“event\u datetime>=?”,Date.today)
自我。朋友。每个人都做|
list+=fr.events.where(“event\u datetime>=?”,Date.day)
结束
list.compact.sort_by{| event | event.event_datetime}
结束
def在线?
如果当前签名在当前?
目前最后一次注销?当前签入时间>最后签出时间:真
其他的
假的
结束
结束
def将积分授予推荐人
如果!自我介绍,零?
自我推荐。添加_点(200,类别:推荐)
结束
结束
def生成ref令牌
如果self.reference_token.nil?
self.reference_token=循环do
token=SecureRandom.urlsafe_base64(零,假)
中断令牌,除非用户存在?(引用令牌:令牌)
结束
结束
结束
定义self.create_from_provider_数据(provider_数据)
其中(provider:provider_data.provider,uid:provider_data.uid)|
user.email=provider\u data.info.email
user.password=design.friendly_令牌[0,20]
user.skip\u确认!
结束
结束

结束

据我所知,有一个回滚,可能是在用户模型上。你有什么验证?我把我的用户模型添加到我的帖子里了!您是否设置了任何设计验证?