Tag: omn​​iauth

当每个请求的app id和app secret不同时,请使用omniauth-facebook?

omn​​iauth-facebook README提到了如何在初始化程序中设置它以及如何仅为每个请求设置scope选项。 我想知道是否可以为每个请求设置app id和app secret。

Rails facebook app返回422“你想要的改变被拒绝”错误

我的脸书今天刚刚获得批准。 然而,当我点击“转到应用程序”时,它返回Rail 422“您想要的更改被拒绝。错误”我将我的Canvas URL设置为我的网站URL并且我正在使用Omniauth,所以我只是想知道我错过了什么。

OmniAuth单点登录与Devise,invalid_credentials

我有3个网络应用程序 – A,B和C.应用程序A包含用户数据库。 如果访问App B和App C,我希望将用户重定向到App A进行身份validation,然后返回到他们尝试访问的任何应用程序。 同时,他们应该登录到所有应用程序。 除非有人有更好的解决方案,否则我已经使用了本博客文章中描述的OmniAuth / Devise组合解决方案。 我已经分发并更新到Rais 3.1.2示例应用程序A和示例应用程序B / C. 应用A – 提供商 – https://github.com/RobZolkos/sso-devise-omniauth-provider App B / C – 客户端 – https://github.com/RobZolkos/sso-devise-omniauth-client 这些示例应用程序正常工作,我将被重定向到提供程序应用程序进行身份validation,但它似乎无法进行身份validation。 我在这里附上了日志。 提供商似乎经历了这些动作,但是在日志的第26行,您可以看到似乎存在身份validation问题。 我错过了一些简单的方法来使这些示例应用程序工作吗

omn​​iauth OAuthException&OAuth ::未经授权

我已经安装了omniauth 1.0。 我也有oauth-0.4.5,oauth2-0.5.1,omniauth-facebook-1.0.0,omniauth-twitter-0.0.6。 omniauth.rb Rails.application.config.middleware.use OmniAuth::Builder do provider :developer unless Rails.env.production? provider :facebook, ENV[‘167257285348131’], ENV[‘c8c722f697scb2afcf1600286c6212a9′], :scope => ’email,offline_access,read_stream’, :display => ‘popup’ provider :twitter, ENV[‘fma2L22ObJCW52QrL7uew’], ENV[‘4aZfhCAOdiS7ap8pHJ7I1OZslFwVWWLiAMVpYUI’] end session_controller.rb class SessionsController < ApplicationController require 'omniauth-facebook' require 'omniauth-twitter' require 'omniauth' def create @user = User.find_or_create_from_auth_hash(auth_hash) self.current_user = @user redirect_to '/' end def auth_hash request.env['omniauth.auth'] end end 此外,我将’omniauth”omniauth-facebook”omniauth-twitter’gem添加到gemfile中 有两个问题: […]

omn​​iauth(自定义策略)/门卫的法拉第超时错误

我正在关注这个railscast,并且针对我的具体情况,我遇到了来自omniauth的回调的法拉第超时错误。 目前我使用rails应用程序作为API和骨干作为javascript前端(在同一个应用程序中) 我决定用OAuth锁定API并为Omniauth提供自定义策略以作为客户端访问API以及门卫来处理授权逻辑 module OmniAuth module Strategies class Twiddle < OmniAuth::Strategies::OAuth2 option :name, :twiddle option :client_options, { site: "http://localhost:3001", authorize_path: "/oauth/authorize" } uid do raw_info["id"] end info do { firstName: raw_info["firstName"], lastName: raw_info["lastName"], email: raw_info["email"] } end def raw_info @raw_info ||= access_token.get('/api/v1/user').parsed end end end end 我包括这样的自定义策略: require File.expand_path(‘lib/omniauth/strategies/twiddle’, Rails.root) Rails.application.config.middleware.use OmniAuth::Builder do provider :twiddle, […]

Rails:在Omniauth使用Devise登录后从Facebook检索图像

我使用这些说明设置Facebook使用Devise和omniauth登录https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview Devise wiki提供了一些说明,用于从存储在此变量request.env[‘omniauth.auth’]的哈希获取facebook信息。请参阅底部的哈希值。 例如,Devise wiki为User.rb模型提供了这两种方法 def self.find_for_facebook_oauth(access_token, signed_in_resource=nil) data = access_token.extra.raw_info if user = User.where(:email => data.email).first user else # Create a user with a stub password. User.create!(:email => data.email, :password => Devise.friendly_token[0,20]) end end def self.new_with_session(params, session) super.tap do |user| if data = session[“devise.facebook_data”] && session[“devise.facebook_data”][“extra”][“raw_info”] user.email = data[“email”] end end end 因此,使用下面的哈希,我将以下两个方法添加到以获取名称和图像 def […]

使用设计设置多个提供者:omniauthable

我刚刚得到“Devise 1.2支持与OmniAuth教程的集成” ,但是我想设置多个提供者来引用同一个用户。 我正在寻找一些好的示例代码来查看。 我也不确定“多个提供者”是否可能使用默认的“设计:omniauthable”实现,我想达到“一个用户多个提供者”的效果,如Ryan Bates 235-omniauth-part-1,236所述-omniauth-part-2但是我想问一下,如果你已经知道一些例子,是否可以采用更清晰的方式,更少被黑客攻击的混合模型。 在此先感谢luca

OmniAuth不适用于Rails3中的Route Globbing

我试图遵循Railscast 241 Simple OmniAuth ,除非我在/config/routes.rb末尾有Route Globbing,否则它可以正常工作: match ‘*uri’ => “posts#index” 如果我使用globbing请求/auth/twitter ,那么OmniAuth什么都不做: Started GET “/auth/twitter” for 127.0.0.1 at 2011-04-03 19:17:44 +0200 Processing by PostsController#index as HTML Parameters: {“uri”=>”auth/twitter”} Rendered posts/index.html.haml within layouts/application (9.0ms) Completed 200 OK in 103ms (Views: 14.6ms | ActiveRecord: 0.7ms) 没有通配路线,它可以正确validation。 有没有办法让路线全球化和OmniAuth?

请求的资源上不存在“Access-Control-Allow-Origin”标头

我在AngularJS上使用omniauth-facebook并且CORS无法正常工作。 我的omniauth.rb是 Rails.application.config.middleware.use OmniAuth::Builder do provider :facebook,”xxxxx”, “xxxxx”, :scope => ’email,user_birthday,read_stream’, :display => ‘popup’ end 如果我将它用作rails应用程序和请求,一切正常。 但是当我尝试通过Angular JS调用’http:\ localhost:3000 \ users \ auth \ facebook“时 $http.get(‘/users/auth/facebook’).success(function(data, status, headers, config) { console.log(“back in success”); }). error(function(data, status, headers, config) { }); } 我在JS控制台中看到以下错误 XMLHttpRequest无法加载https://www.facebook.com/dialog/oauth?client_id=xxxx&display=popup … thday%2Cread_stream&state = 3352c1924bdbc9277f7b1070c38d67acf79b529f198323cb。 请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此不允许’http://localhost:3000’访问。 (该控制台中的url未完全显示) 我添加了以下行 config.middleware.insert_before Warden::Manager, Rack::Cors 但这也行不通。 […]

获取(omniauth-facebook)和(omniauth-twitter)工作

我正在使用: Ruby on Rails 4 设计3.0.3 omn​​iauth(1.1.4) omn​​iauth-facebook(1.4.1) omn​​iauth-twitter(1.0.0) 我最近建立了我的omniauth-facebook ,一切正常。 现在我想添加omniauth-twitter但不知怎的,我搞砸了,非常糟糕。 1.)设置我的Omniauth-Facebook我做到了这一点(简而言之): gem ‘omniauth’ gem ‘omniauth-facebook’ 2.)在我的用户模型中添加了“ provider ”和“ uid ”列。 3.)接下来,我在config / initializers / devise.rb中声明了提供程序: require “omniauth-facebook” config.omniauth :facebook, “App_ID”, “App_Secret”, {:scope => ’email,offline_access’, :client_options => {:ssl => {:ca_file => ‘lib/assets/cacert.pem’}}, :strategy_class => OmniAuth::Strategies::Facebook} 4.)我编辑了Model User.rb # Facebook Settings def self.find_for_facebook_oauth(auth, signed_in_resource = […]