Rails Omniauth Gem重定向网址不匹配

时间:2016-03-21 20:16:15

标签: ruby-on-rails omniauth

我是Rails的新手,我现在已经坚持这个问题了。我们在Rails应用程序中使用Omniauth Gem进行身份验证。我有一个会话控制器,它指定redirect_url。身份验证成功发生,但网址不是我们所期望的。

回复网址: https://mycompany****/oauth/authorize?client_id=259fb843dc20d1b7&redirect_uri=https%3A%2F%2Frailswebserver%2Fauth%2Fprovider%2Fcallback&response_type=code&state=fe144f693105a30223cab09c68eb95ecdf58a0e248a679e8

redirect_uri仍指向/ auth / provider / callback,而我们希望它附加会话控制器中提到的内容。我不知道如何在这个响应url中选择client_id,因为我在yml文件中提到的那个是不同的。

sessions_controller.rb

class SessionsController < ApplicationController 
  def new 
   redirect_to "/auth/#{OAUTH_SETTINGS["auth_provider"]}" 
  end

  def create 
    omniauth_data = env["omniauth.auth"] 
    username = omniauth_data['info']['username'] session[:user_id] = username 
    redirect_path = root_path + "/docs/index.html" redirect_path = cookies[:return_url] 
    if !cookies[:return_url].blank? 
      cookies[:return_url] = nil 
      redirect_to redirect_path 

oauth.yml development: auth_provider: 'provider' oauth_root_url: 'mycompany******.com' oauth_client_id: '259***************************8a76b3629b843dc20d1b7' oauth_secret: 'e9c697***************************b9c3bfa82f5f893ca1' docs_root_url: 'railswebserver';

0 个答案:

没有答案