【问题标题】:Not found. Authentication passthru. stripe_connect and Devise未找到。身份验证通路。 stripe_connect 和设计
【发布时间】:2017-10-22 16:26:01
【问题描述】:

我正在尝试允许已登录的用户连接他们的 Stripe 帐户并通过我的平台进行付款。

我正在使用这个 gem:https://github.com/isaacsanders/omniauth-stripe-connect

每当我单击链接以连接到 Stripe 时,它​​只会给我“未找到。身份验证通路”错误。

这是我的代码:

Gemfile
    ...
    #Use Stripe for payment processing
    gem 'stripe', '1.48.0'
    gem 'omniauth-stripe-connect'
    ...

config/routes.rb
    ...
    devise_for :users, controllers: { :omniauth_callbacks => "omniauth_callbacks" }
    ...

controllers/omniauth_callbacks_controller.rb
    class OmniauthCallbacksController < Devise::OmniauthCallbacksController

        def stripe_connect
          @user = User.find_for_stripe_connect(request.env['omniauth.auth'], current_user)
          set_notice_and_redirect
        end

        private

        def set_notice_and_redirect          
          if @user.persisted?
              flash[:notice] = 'Successfully signed in'
              set_flash_message(:notice, :success, :kind => "Stripe") if is_navigational_format?
            else
              session["devise.stripe_connect_data"] = request.env["omniauth.auth"]
              redirect_to new_user_registration_url
          end
        end
    end

/models/user.rb
    ...
    devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable, :omniauthable, :omniauth_providers => [:stripe_connect]
         ...

/config/initializers/devise.rb
    ...
    config.omniauth :stripe_connect,
        ENV['stripe_connect_client_id'],
        ENV['stripe_api_key'],
        :scope => 'read_write',
        :stripe_landing => 'register'
    ...

/config/initializers/stripe.rb
    Stripe.api_key = ENV["stripe_api_key"]
    STRIPE_PUBLIC_KEY = ENV["stripe_publishable_key"]
    STRIPE_CONNECT_CLIENT_ID = ENV["stripe_connect_client_id"]

View link
    <%= link_to image_tag("light-on-light.png"), user_stripe_connect_omniauth_authorize_path %>


application.yml (figaro)
    stripe_api_key: sk_test_mysecretstripeapikeyfortheapplicationaccount
    stripe_publishable_key: pk_test_mypublicstripeapikeyfortheapplicationaccount
    stripe_connect_client_id: ca_myclientidfortheappregisteredwithstripe
    #
    production:
      stripe_api_key: sk_test_mysecretstripeapikeyfortheapplicationaccount
      stripe_publishable_key: pk_test_mypublicstripeapikeyfortheapplicationaccount
      stripe_connect_client_id: ca_myclientidfortheappregisteredwithstripe

如果您能找到我的错误,那就太好了。我也很感激对使用 Devise 和 Stripe Connect 的示例 rails 应用程序的任何参考。

【问题讨论】:

    标签: ruby-on-rails devise stripe-connect


    【解决方案1】:

    所以我逐行检查了我的代码,没有任何改变,但不知何故,passthru 错误消失了。也许 Stripe 花了一夜的时间来注册我的申请。老实说,我不知道。一旦该错误消失,当我通过我的用户模型中的一个函数传递它时,我得到了一个关于 request.env["omniauth.auth"] 的不同错误。所以我将控制器改回使用 winvoice 教程 (http://www.munocreative.com/nerd-notes/winvoice) 中的代码,现在一切正常。用户属性使用来自条带的令牌进行更新。

    【讨论】:

      猜你喜欢
      • 2017-08-16
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      • 2015-01-30
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多