让用户使用Facebook登录或创建帐户
此时用户可以使用omniauth-facebook gem的facebook帐户登录我的网站。 我还想为用户实现一种方法,即使用类似设计的gem创建一个帐户,这样他们在发布时可以保持更加匿名。
这是我在sessions_controller中的内容
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 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
这是我可以通过添加设计gem来解决的问题,还是我需要在我的sessions_helper或用户模型中添加一些内容?
Devise具有内置function,可以使用所有各种omniauth- *gem。 你一定要仔细研究它。 https://github.com/plataformatec/devise/wiki/OmniAuth%3A-Overview
- Ruby on Rails Omniauth facebook不会返回电子邮件
- Ruby HTTP Library通过Facebook App获得Connection Reset
- Omniauth-facebook哈希没有显示Facebook’用户名’字段,使用rails 3
- 将facebook生日信息添加到rails / devise / omniauth中的某个模型
- 使用rspec进行集成测试并设计sign_in env
- 记得用OmniAuth登录
- Facebook登录OmniAuth错误更改被拒绝
- Omniauth + Facebook失去了会话
- 在Facebook页面上发布的简便方法(不是个人资料,而是粉丝页面)