标签: omniauth

omn​​iauth gem 如何创建路线?

我正在使用omniauth来实现身份验证策略,但有一件事我无法理解:omniauth会生成一些要使用的路由,但我无法通过rake routes.

例如,gemomniauth -saml将生成auth/saml路由,当我访问该路径时,它将启动请求阶段。但是,我在路线列表中找不到它。因此,我很难知道哪些路由已经创建并且可以直接使用。

有人可以帮助我吗?

干杯

ruby-on-rails omniauth

2
推荐指数
1
解决办法
768
查看次数

尝试在 rails 中使用 Gmail API 进行身份验证时,没有路由匹配 [GET] "/auth/google_oauth2" 错误

尝试使用 Rails 中的 Gmail API 进行身份验证时,出现 No route matching [GET] "/auth/google_oauth2" 错误。

按照这篇文章https://www.twilio.com/blog/2014/09/gmail-api-oauth-rails.html,我正在实现 Gmail API 集成。

代码似乎是正确的。但不知道是什么问题。

在路由文件中:

  root to: 'visitors#index'
  if defined?(Devise)
    devise_for :users, :controllers => { :registrations => "registrations", :passwords => "passwords", omniauth_callbacks: 'omniauth_callbacks' }
    devise_scope :user do
      get 'auth/:provider/callback', :to => 'users/omniauth_callbacks#facebook'
    end
  end
  get "/auth/:provider/callback" => "candidates#authenticate_from_google"
Run Code Online (Sandbox Code Playgroud)

在 rake 路线中,我什至也有路线。

GET /auth/:provider/callback(.:format)  candidates#authenticate_from_google

  
Run Code Online (Sandbox Code Playgroud)

在 Gemfile 中:-

gem "omniauth"
gem "omniauth-linkedin"
gem "jwt", "~> 1.4.1"
gem "linkedin-scraper", "~> 0.1.5"
gem "omniauth-facebook"
gem "omniauth-google-oauth2"
gem 'signet' …
Run Code Online (Sandbox Code Playgroud)

routes ruby-on-rails omniauth gmail-api

2
推荐指数
1
解决办法
754
查看次数

RSpec与Capybara - 使用OpenID测试登录

我在创造继Railscast要求规格http://railscasts.com/episodes/257-request-specs-and-capybara

在我的应用程序中,用户使用OmniAuth的Google OpenID帐户登录(http://railscasts.com/episodes/241-simple-omniauth).我如何使用RSpec和Capybara进行测试?当我的应用程序重定向到Google登录页面时,出现以下错误:

ActionController::RoutingError:
No route matches "/accounts/o8/ud"
Run Code Online (Sandbox Code Playgroud)

它似乎不允许重定向远离应用程序,所以我该如何测试呢?

capybara rspec2 omniauth ruby-on-rails-3

1
推荐指数
1
解决办法
864
查看次数

Rails,Omniauth,Authlogic和Facebook--迈出了第一步

我正在尝试使用Rails,Authlogic和Omniauth让Facebook登录我的应用程序.我正在尽可能精确地遵循http://railscasts.com/episodes/235-omniauth-part-1的第一步.

我有:

  • 添加omniauth宝石,运行bundle install.
  • 创建一个新的认证漂亮的支架与领域user_id,provideruid.
  • 添加了路线: match '/auth/:provider/callback' => 'authentications#create'
  • 添加到config/initializers/omniauth.rb:

    Rails.application.config.middleware.use OmniAuth::Builder do
      provider :facebook, '20...my_app_id', 'bc...my_app_secret'
    end
    
    Run Code Online (Sandbox Code Playgroud)

然后服务器无法重新启动:

/Users/san/.rvm/gems/ruby-1.9.2-p0/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb:206:
    in 'const_missing_from_s3_library': uninitialized constant 
    OmniAuth::Strategies::Facebook (NameError)
    from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.2/lib/rake/ext/module.rb:36:in 'const_missing'
    from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/omniauth-1.0.0/lib/omniauth/builder.rb:22:in 'const_get'
    from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/omniauth-1.0.0/lib/omniauth/builder.rb:22:in 'provider'
    from /Users/san/Documents/sanj/myapp/config/initializers/omniauth.rb:2:in 'block in <top (required)>'
    from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/rack-1.2.3/lib/rack/builder.rb:46:in 'instance_eval'
    from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/rack-1.2.3/lib/rack/builder.rb:46:in 'initialize'
    from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/omniauth-1.0.0/lib/omniauth/builder.rb:7:in 'initialize'
    from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.0.10/lib/action_dispatch/middleware/stack.rb:33:in 'new'
    from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.0.10/lib/action_dispatch/middleware/stack.rb:33:in 'build'
    from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.0.10/lib/action_dispatch/middleware/stack.rb:79:in 'block in build'
    from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.0.10/lib/action_dispatch/middleware/stack.rb:79:in 'each'
    from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.0.10/lib/action_dispatch/middleware/stack.rb:79:in 'inject' …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails amazon-s3 authlogic omniauth ruby-on-rails-3

1
推荐指数
1
解决办法
3806
查看次数

新的Omniauth 1.0.0是否适用于Devise?

我目前正在使用: gem "omniauth", '0.3.2'

我正在尝试升级到omniauth 1.0.0,将以上内容替换为:

gem 'omniauth-github', :git => 'git://github.com/intridea/omniauth-github.git' # Core, requires a OA Stratedgy gem for each provider
gem 'omniauth-facebook', :git => 'git://github.com/mkdynamic/omniauth-facebook.git' # FB OmmiAuth Stratedgy
gem 'omniauth-contrib', :git => 'git://github.com/intridea/omniauth-contrib.git' # TWITTER OmmiAuth Stratedgy
Run Code Online (Sandbox Code Playgroud)

但是当我捆绑安装/更新时遇到错误:

$ bundle install
Updating git://github.com/intridea/omniauth-github.git
Updating git://github.com/mkdynamic/omniauth-facebook.git
Updating git://github.com/intridea/omniauth-contrib.git
Fetching source index for http://rubygems.org/
Bundler could not find compatible versions for gem "hashie":
  In snapshot (Gemfile.lock):
    hashie (1.1.0)

  In Gemfile:
    omniauth-facebook depends on
      hashie (~> 1.2)

Running `bundle update` will …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise omniauth ruby-on-rails-3

1
推荐指数
1
解决办法
615
查看次数

没有这样的文件加载 - openid/store/filesystem(Rails omniauth)

这是我第一次尝试使用Omniauth.当我从github 测试https://github.com/pt/devise-omniauth-example这个例子时我遇到了一个错误

 .rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require': no such file to load -- openid/store/filesystem (LoadError)
Run Code Online (Sandbox Code Playgroud)

这是我的Gemfile内容

source 'http://rubygems.org'

gem 'rake'
gem 'rails'
gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'devise', :git => 'git://github.com/plataformatec/devise', :branch => 'master'
gem "omniauth", "1.0.1"
gem 'paperclip'
gem "simple_form", "~> 1.5.2"
gem 'twitter_oauth', '0.4.3'
gem "rest-client", "1.6.7", :require => "restclient"
gem "sluggable"


group :development, :test do
 gem 'rspec-rails'
 gem 'fixjour'
end
Run Code Online (Sandbox Code Playgroud)

我搜索网络但没有运气.

ruby-on-rails devise omniauth

1
推荐指数
1
解决办法
2291
查看次数

将Rails应用程序与Google Apps集成

我正在开始一个新的应用程序,我想与Google Apps集成.

我希望让用户通过他们的Google帐户登录,并访问其域的Google API(列出所有域用户,并允许他们登录并共享相同的数据).

我从来没有这样做过,所以我有点困惑,我需要执行哪些步骤,我在网上阅读了一些文档,我也看了一下omniauth.

要求:

  • 只能通过谷歌应用程序帐户登录
  • 每个用户必须使用自己的用户/密码登录(google account @ domain.com)
  • 同一个域的所有用户必须看到相同的共享数据(当然,应用程序会关注什么是公共的,什么不是).

在我看来,我需要做的就是:*当用户确认Google会将用户重定向到我的应用程序的回调时*集成一个OpenID客户端(例如omniauth)*我现在有一个可用于查询的令牌谷歌API

我对吗?我还看了一下这篇文章,但似乎不是我正在搜索的内容,我事先无法知道用户域是什么.

也许我将谷歌应用程序帐户的gmail帐户混淆,使用后者用户能够使用自己的帐户登录,或者他们将只共享整个域的一个帐户?

omniauth完成这种登录是正确的宝石吗?

谢谢!

ruby ruby-on-rails omniauth ruby-on-rails-3

1
推荐指数
1
解决办法
1230
查看次数

设计+ omniauth-google-oauth2调用错误

嗨,我想在我的应用程序上集成设计和omniauth登录.我正在尝试使用omniauth-google-oauth2,我按照本教程中的内容进行操作https://github.com/plataformatec/devise/wiki/OmniAuth%3A-Overview

我这么做,但我一直收到谷歌错误消息

Error: invalid_request
Missing required parameter: client_id
Learn more
Request Details
response_type=code
scope=https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile
redirect_uri=http://localhost:3000/users/auth/google_oauth2/callback
access_type=offline
approval_prompt=
state=50665ea3f96dc12e2189e93e1bc40592fc35ce5167d462e0
client_id=
Run Code Online (Sandbox Code Playgroud)

有谁能够帮我?

ruby-on-rails devise oauth-2.0 omniauth

1
推荐指数
1
解决办法
3869
查看次数

用黄瓜测试omniauth

我正在寻找帮助测试黄瓜的omniauth认证.我尝试过一个教程(http://samuelmullen.com/2011/05/simple-integration-testing-with-cucumber-and-omniauth/),但似乎根本没有调用会话控制器.

这是我到目前为止:

功能/支持/ env.rb:

Capybara.default_host = 'example.org'
OmniAuth.config.test_mode = true
OmniAuth.config.add_mock(:twitter, {
  :uid => '12345',
  :info => {
    :name => 'twitteruser',
  }
})

OmniAuth.config.add_mock(:facebook, {
  :uid => '12345',
  :info => {
    :name => 'facebookuser'
  }
})
Run Code Online (Sandbox Code Playgroud)

步骤定义:

Given /^I am signed in with provider "(.*)"$/ do |provider|
  visit "/auth/#{provider.downcase}"
end
Run Code Online (Sandbox Code Playgroud)

场景:

Scenario: a user can log into facebook
  Given I am signed in with provider "facebook"
  And I am on the profile page for "facebookuser"
  Then I should …
Run Code Online (Sandbox Code Playgroud)

cucumber omniauth ruby-on-rails-4

1
推荐指数
1
解决办法
1005
查看次数

无法为Delayed :: Backend大量分配受保护的属性:ActiveRecord :: Job:priority queue,payload_object

我正在将我的应用程序迁移到4.1并遇到此错误的一些麻烦:

Failure/Error: get :facebook
 ActiveModel::MassAssignmentSecurity::Error:
   Can't mass-assign protected attributes for Delayed::Backend::ActiveRecord::Job: priority, queue, payload_object
 # ./app/models/user.rb:457:in `subscribe_to_mailchimp'
 # ./app/controllers/users/omniauth_callbacks_controller.rb:14:in `facebook'
 # ./config/initializers/log_formatter.rb:22:in `block (2 levels) in <top (required)>'
 # ./config/initializers/log_formatter.rb:21:in `block in <top (required)>'
 # ./spec/controllers/users/omniauth_callbacks_controller_spec.rb:23:in `block (3 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

规格:

describe Users::OmniauthCallbacksController, ci: true do
  describe "when authenticating" do
    let(:user) do
      Fabricate(:user) 
    end
    let(:social_media_account) do
      Fabricate(:social_media_account, uid: "12345", provider: "facebook", user: user) 
    end

    before do
      term = Fabricate(:term, name: "application")
      user.terms << term
      Fabricate(:project)
    end

    it "redirects …
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails omniauth

1
推荐指数
1
解决办法
439
查看次数