我正致力于在本地开发模式下使用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设置正确的值,以便在本地系统中工作。