Ruby on rails 让用户使用facebook登录或创建帐户

Ruby on rails 让用户使用facebook登录或创建帐户,ruby-on-rails,facebook,devise,Ruby On Rails,Facebook,Devise,此时,用户可以使用omniauth facebook gem的facebook帐户登录到我的网站。我还想实现一种方法,让用户只需使用类似gem的设备创建一个帐户,这样他们在发布时就可以保持匿名 这是我的会话控制器中的内容 class SessionsController < ApplicationController def create user = User.from_omniauth(env["omniauth.auth"]) session[:user_id]

此时,用户可以使用omniauth facebook gem的facebook帐户登录到我的网站。我还想实现一种方法,让用户只需使用类似gem的设备创建一个帐户,这样他们在发布时就可以保持匿名

这是我的会话控制器中的内容

class SessionsController < ApplicationController
  def create
    user = User.from_omniauth(env["omniauth.auth"])
    session[:user_id] = user.id
    redirect_to root_url
  end

  def destroy
    session[:user_id] = nil
    redirect_to root_url
  end
end
class sessioncontroller
然后是我的用户模型

class User < ActiveRecord::Base
include SessionsHelper

  def self.from_omniauth(auth)
    where(auth.slice(:provider, :uid)).first_or_initialize.tap do |user|
        user.provider = auth.provider
        user.uid = auth.uid
        user.name = auth.info.name
        user.oauth_token = auth.credentials.token
        user.oauth_expires_at = Time.at(auth.credentials.expires_at)
        user.save!
    end
  end

  has_many :stories
end
class用户

这是我可以通过添加Desive gem来解决的问题,还是我需要在我的会话中添加一些东西\u助手或用户模型?

Desive内置了一些功能,可以使用各种omniauth-*gem。你一定要调查一下