Tag: facebook

如何使用Minitest测试OmniAuth的SessionsController

我正在尝试使用Minitest测试我的Facebook登录代码,但它并不顺利。 当我尝试get :auth, ‘provider’ => ‘facebook’在测试中,测试返回undefined method ‘[]’ for nil:NilClass ,如果我尝试get :new它传递,但auth不被调用。 如何使用omniauth成功重定向到auth? 这是我的源代码。 测试/控制器/ sessions_controller_test.rb require ‘test_helper’ class SessionsControllerTest ‘facebook’, ‘uid’ => ‘123451234512345’, ‘info’ => {’email’ => ‘testuser@testmail.com’, ‘name’ => ‘test’, ‘image’ => ”} }) request.env[‘omniauth.env’] = OmniAuth.config.mock_auth[:facebook] get :auth end end 应用程序/控制器/ sessions_controller.rb class SessionsController < ApplicationController def auth if(env['omniauth.params']['type'] == 'signin') if […]

Unicorn和omniauth-facebook – 未初始化的恒定OmniAuth

所以我想让omniauth-facebook在我的生产环境中工作。 它使用POW在我的机器上本地工作正常。 我的prv env是带有nginx / unicorn的ubuntu,代码是Rails 3.2.13,独角兽的错误是: E, [2013-05-20T15:51:13.900829 #8737] ERROR — : uninitialized constant OmniAuth (NameError) /home/web/apps/****/releases/20130520041958/config/initializers/omniauth.rb:1:in `’ 所以从我能找到的,我尝试在configure块上面添加require’omniauth / facebook’到我的production.rb文件,现在我得到: /home/web/apps/****/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require’: cannot load such file — omniauth/facebook (LoadError) gemfile看起来像这样: source ‘https://rubygems.org’ gem ‘rails’, ‘3.2.13’ gem ‘pg’ gem ‘bcrypt-ruby’, ‘3.0.1’ gem ‘jquery-rails’, ‘2.2.1’ gem ‘omniauth-facebook’ gem ‘simple_form’ 初始化文件看起来像这样: OmniAuth.config.logger = Rails.logger Rails.application.config.middleware.use OmniAuth::Builder […]

Rails 5设计omniauth-facebook错误:抱歉,出了点问题

我正在按照Devise的官方指南从顶部到本节 。 我的CALLBACK_URL是http://localhost:3000/users/auth/facebook/callback ,我认为这可能是问题,但我不确定。 当我点击登录Facebook时,我遇到了这个错误: 抱歉,出了一些问题。 在这个链接上: https://www.facebook.com/v2.6/dialog/oauth?client_id=193217371133539&redirect_uri=https%3A%2F%2Flocalhost%3A3000%2Fusers%2Fauth%2Ffacebook%2Fcallback&response_type=code&scope=user%2Cpublic_repo&state=3913c12e0e4ce8b422732c9159c0fb1fb7351d100487849d Rails版本:Rails 5.0.0.1 Ruby版本(使用rbenv):ruby 2.3.1p112(2016-04-26修订版54768)[x86_64-darwin16]

Authlogic创建没有密码的新会话

我正在尝试将Facebook OAuth构建到我现有的Authlogic登录系统中。 我已完成OAuth部分,并存储了facebook access_token。 我面临的问题是在没有用户输入密码的情况下实际登录用户(创建会话)。 #facebook’s OAuth callback def callback access_token = client.web_server.get_access_token(params[:code], :redirect_uri => redirect_uri) fb_user = JSON.parse(access_token.get(‘/me’)) @user = User.find_by_facebook_id(fb_user[“id”]) || User.find_by_email(fb_user[“email”]) || User.new @user.update_attributes({ :facebook_id => fb_user[“id”], :first_name => fb_user[“first_name”], :last_name => fb_user[“last_name”], :gender => fb_user[“gender”], :email => fb_user[“email”], :timezone => fb_user[“timezone”], :locale => fb_user[“locale”], :facebook_url => fb_user[“link”], :facebook_access_token => access_token.token }) […]

使用link_to Rails设置会话变量

是否可以使用link_to设置会话变量? 我不想设置参数,因为我有一些重定向并且它被擦掉了。 即我想用链接将会话变量“modelid”设置为“你”。 我想在FB登录oauth运行时设置会话变量… “btn btn-primary btn-large inline pull-left”, :onclick => “FB.login(function(response){},{perms:’email, publish_stream, user_photos’});” } %>

sign_in_and_redirect如何设计工作?

if @user.persisted? sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated set_flash_message(:notice, :success, :kind => “Facebook”) if is_navigational_format? else session[“devise.facebook_data”] = request.env[“omniauth.auth”] redirect_to new_user_registration_url end 这种方法存在于facebook omniauth callbacks controller 。 我面临的问题是我没有从facebook获取用户的电话号码,因此@user不是有效的对象(我有validation )。 所以,我想将用户重定向到另一个我可以询问电话号码的页面。 如何修改sign_in_and_redirect @user以将我重定向到该页面而不是根url。

记得用OmniAuth登录

有没有一种简单的方法来实现OmniAuth的“记住我”function? 我正在使用Facebook,身份和LinkedIn,我正在寻找一种方法来让用户跨会话登录我的网站。

Omniauth-Facebook回调不会在Rails可安装引擎中初始化

我正在开发一种可安装的引擎(称为SimpleUser),它使用Devise,OmniAuth和OmniAuth-Facebook。 首先,我用gem做了一个测试应用程序,并且每个工作正常。 接下来,我开始从头开始构建引擎,使用测试应用程序的代码作为示例。 几乎所有事情都已完成,除了与Facebook的连接(它使用Javascript弹出窗口)。 当我点击“登录”时会显示FB弹出窗口,我授予应用程序,它会重定向到指定的路由(请参阅路由),但会抛出此错误: NoMethodError in SimpleUser::AuthController#create undefined method `[]’ for nil:NilClass 该行为发生错误,在行authentication = Authentication.find_by_provider_and_uid(auth[‘provider’], auth[‘uid’]) , auth为nil( auth来自auth = request.env[“omniauth.auth”] )。 我检查的一件事是Callback阶段没有初始化。 这是测试应用的日志: 在2013-03-14 08:52:56 -0600(facebook)开始获取127.0.0.1的GET“/ auth / facebook / callback”。回调阶段已启动。 由AuthController处理#create as HTML参数:{“provider”=>“facebook”} 这是引擎应用程序的日志: Started GET “/simple_user/auth/facebook/callback” for 127.0.0.1 at 2013-03-14 08:51:19 -0600 Processing by SimpleUser::AuthController#create as HTML Parameters: {“provider”=>”facebook”} 为了管理OmniAuth,我将gem添加到.gemspec和Gemfile中; 另外,我需要引擎中的gem,并且在引擎的生成器中我将omniauth.rb的模板移动到安装期间父app的config […]

将facebook生日信息添加到rails / devise / omniauth中的某个模型

我有问题从facebook获取生日信息到我的应用程序。 最大的问题是误解了FB的权限页面: http : //developers.facebook.com/docs/authentication/permissions/ 这里的生日被描述为user_birthday。 但那不是你如何从响应中获取它。 我找到了一个非常简单的解决方案。

未初始化的常量User :: Authorization | omn​​iauth

我按照上一个问题的答案 – > 将Twitter帐户连接到现有的设计帐户 但得到一个 NameError in Devise::Registrations#edit uninitialized constant User::Authorization app/models/user.rb:17:in `has_connection_with’ app/helpers/users_helper.rb:4:in `check_connection’ app/views/devise/registrations/edit.html.erb:57:in `_app_views_devise_registrations_edit_html_erb__1951492867192219113_70202479591960′ 我正在努力修复它,但没有。我错过了什么?