使用Omniauth Github在本地验证Rails应用程序

时间:2017-01-03 07:56:09

标签: ruby-on-rails ruby ruby-on-rails-4 github omniauth

我正致力于在本地开发模式下使用GitHub对用户进行身份验证。

我正在使用omniauth-github Rubygem。

我在 config / initializers / omniauth.rb

中有以下代码
OmniAuth.config.logger = Rails.logger

Rails.application.config.middleware.use OmniAuth::Builder do
 provider :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET'],
    {
      :client_options => {
        :site => 'https://github.com/api/v3',
        :authorize_url => 'https://github.com/login/oauth/authorize',
        :token_url => 'https://github.com/login/oauth/access_token',
      }
    }
end

在视图布局中我有

<%= link_to "Sign in with Github", "/auth/github" %>

routes.rb 我有

  match 'auth/:provider/callback' => 'session#create', :via => [:get, :post]
  match 'signout' => 'session#destroy', :via => [:delete], :as => 'signout'

我在github中注册了新的应用程序 首页网址http://localhost:3000授权回调网址http://localhost:3000/callback

点击使用Github登录后,我收到以下错误。

http://localhost:3000/callback?error=redirect_uri_mismatch&error_description=The redirect_uri MUST match the registered callback URL for this application.&error_uri=https://developer.github.com/v3/oauth/#redirect-uri-mismatch&state=14216a2416431297d9690e68efe0723a03aa7a1eaee51db3

请帮助我为site,authorize_url,token_url设置正确的值,以便在本地系统中工作。

0 个答案:

没有答案