Tag: omn​​iauth facebook

Devise + Omniauth Facebook重定向到注册

我已经按照https://github.com/plataformatec/devise/wiki/OmniAuth:-概述的指南 第一轮它validation了我,签了我,并把我救了db。 我清除了浏览器历史记录并测试了其他用户。 它需要新用户登录Facebook页面,登录后会自动将其重定向到 http://localhost:3000/users/sign_up#_=_ 并且不签名或保存到DB。 有任何想法吗? 路线 get “static/home” devise_for :users, :controllers => { :omniauth_callbacks => “users/omniauth_callbacks” } resources :users root ‘static#home’ User.rb class User [:facebook] def self.from_omniauth(auth) where(auth.slice(:provider, :uid)).first_or_create do |user| user.email = auth.info.email user.password = Devise.friendly_token[0,20] user.name = auth.info.name # assuming the user model has a name #user.image = auth.info.image # assuming […]

CORS问题与Rails 4,omniauth-facebook,rack-cors,Heroku

摘要: 我有一个CORS问题。 我正试图通过带有Rails API的React应用程序对Facebook进行身份validation。 我的应用程序在localhost:8080上运行,我的api在Heroku上运行。 我可以登录到facebook并在回调时创建一个会话,但是由facebook设置的cookie不会被omniauth选中。 我使用omniauth-facebook客户端身份validation。 我认为这个问题出现在我的机架式配置中。 当我在localhost:3000上运行我的api时,它可以工作。 之前,我收到了错误csrf-detected ,但是通过将provider_ignores_state: true添加到omniauth配置中解决了这个问题。 后来,我发现cors调用传递cookie需要xhrFields: { withCredentials: true } 。 最终解决方案:最后,我通过将我的应用程序部署到AWS 53并使用域example.com来解决此问题,并在Heroku上创建CNAMES’api.example.com`到我的api。 让CNAMES得到解决需要一天的时间。 您可以使用命令host example.com和host api.example.com在终端中测试您的设置。 替代解决方案是使用nginx作为代理。 版本: Rails 4.2.2 Omniauth-facebook 3.0.0 Omniauth-oauth2 1.4.0 Rack-cors 0.4.0 问题: Getting error: no_authorization_code. 路线: namespace :api do match “/auth/:provider/callback”, to: “sessions#create”, via: [:get, :post] get “/auth/failure”, to: “sessions#failure” get “/logout”, […]

Omniauth Facebook没有返回电子邮件和性别轨道4

我需要从Facebook获取姓名,电子邮件,图片和性别。 我得到名字和图像,但电子邮件和性别不是从Facebook获取。 我过去2天都在苦苦挣扎,任何人都可以帮助我。 用户模型: def self.from_omniauth(auth) where(provider: auth.provider, uid: auth.uid).first_or_initialize.tap do |user| user.provider = auth.provider user.uid = auth.uid user.name = auth.info.name user.email = auth.info.email user.gender = auth.extra.raw_info.gender #if user.gender.blank? user.image = auth.info.image user.save! end end Omniauth.rb OmniAuth.config.logger = Rails.logger Rails.application.config.middleware.use OmniAuth::Builder do if Rails.env.production? provider :facebook, ‘APP_ID’, ‘APP_SEC’ elsif Rails.env.development? provider :facebook, ‘APP_ID’, ‘APP_SEC’, {:scope […]

Omniauth-facebook登录无法正常工作

当我尝试使用omniauth-facebook登录我的Rails应用程序时,我收到以下错误。 这是在localhost:3000上测试的时候: 不安全的登录被阻止:您无法从不安全的页面获取访问令牌或登录此应用程序。 尝试将页面重新加载为https:// 我在SO上看到了最近的另一篇文章 ,但Facebook似乎并没有允许我在今天创建的这个应用程序的开发者控制台中更改“为Web OAuth登录强制HTTPS”设置。 我可以更改旧应用的设置。 关于如何解决这个问题或绕过它的任何想法? 我将在生产中使用HTTPS,但只是希望能够在开发中使用localhost(http)。

omn​​iauth-facebook cannnot获取电子邮件地址

我创建了新的Rails应用程序并安装了Devise和omniauth-facebook gem。 并将我的Facebook App设置为测试环境。 所以,我通过Facebook登录并注册了我的新Rails应用程序,但request.env不包含电子邮件地址.info。 返回request.env [‘omniauth.auth’] { “provider” => “facebook”, “uid” => “xxxxxxxxxxxx”, “info” => { “name” => “xxxxxxx”, “image” => “http://graph.facebook.com/xxx/picture” }, “credentials” => { “token” => “tokenstring”, “expires_at” => xxxxxxxxx, “expires” => true }, “extra” => { “raw_info” => { “name” => “xxx xxxx”, “id” => “xxxxxxxxx” } } } 它机架request.env [‘omniauth.auth’] […]

Omniauth Facebook重定向到注册屏幕而不是创建用户

按照gem的教程,我似乎仍然遇到了一些问题。 我首先点击链接通过Facebook注册并重定向到Facebook。 我点击没关系,然后回到我的注册页面。 没有创建新用户。 如果我再次尝试单击注册链接,则只需在地址栏中刷新页面http://localhost:3000/register#_=_ 。 我究竟做错了什么? 用户模型 devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:facebook] def self.from_omniauth(auth) where(provider: auth.provider, uid: auth.uid).first_or_create do |user| user.email = auth.info.email user.password = Devise.friendly_token[0,20] user.first_name = auth.info.first_name user.last_name = auth.info.last_name end end 回调控制器 class Users::OmniauthCallbacksController :authentication #this will throw if @user is not activated set_flash_message(:notice, :success, :kind […]

Ruby on Rails Omniauth facebook不会返回电子邮件

我一直在努力设置我的Omniauth for facebook我不知道我做错了什么。 我无法收到用户的电子邮件。 返回的哈希只包含“name”和“uid”,甚至不包含“first_name”和“last_name” devise.rb: config.omniauth :facebook, “KEY”, “SECRET” omn​​iauth_callbacks_controller.rb: class OmniauthCallbacksController < Devise::OmniauthCallbacksController def facebook logger.info request.env["omniauth.auth"] @user = User.from_omniauth(request.env["omniauth.auth"]) sign_in_and_redirect @user end end user.rb: class User [:facebook] has_many :authentications def self.from_omniauth(auth) logger.info auth user = where(email: auth.info.email).first if(user != nil) user.authentications.where(provider: auth.provider, uid: auth.uid).first_or_create do |l| user.authentications.create!(user_id: user.id, provider: auth.provider, uid: auth.uid) […]

Rails 4.1.5 omniauth强参数

将Rails 4.1.4升级到4.1.5后,我的facebook omniauth会话出错,从那时起一切正常。 当我创建一个用户会话时,我得到一个ActiveModel::ForbiddenAttributesError 路线: match ‘auth/:provider/callback’, to: ‘sessions#create’, as: ‘signin’, via: :get Session#创建控制器: def create user = User.from_omniauth(env[“omniauth.auth”]) session[:user_id] = user.id session[:user_name] = user.name redirect_to root_path end 和这样的用户模型: def self.from_omniauth(auth) where(auth.slice(:provider, :uid)).first_or_create.tap do |user| user.provider ||= auth.provider user.uid = auth.uid user.name = auth.info.name user.save end end 我可以通过添加许可来绕过ActiveModel错误! 我的用户模型中的方法是这样的: where(auth.slice(:provider, :uid).permit!).first_or_create.tap do |user| 但它覆盖数据库中的第一个用户… session[:user_id]似乎始终是数据库中的第一个用户。 […]