簡體   English   中英

使用Omniauth gem初始化后更改Twitter提供程序

[英]Change Twitter provider after initialization with Omniauth gem

我正在使用Omniauth在Twitter上進行身份驗證,但是我有2個應用程序注冊了不同的名稱,我想在當前語言環境(會話范圍)上使用depeding。

因此,我需要在用戶調用auth / twitter之前更改在omniauth.rb文件中定義的提供者密鑰和機密(我當時想做一個before_filter,但auth / twitter是Twitter的外部鏈接,而不是常規操作)或一種方式配置Omniauth以通過語言環境定義提供程序,而不是為整個應用程序范圍進行定義。

那我該怎么辦呢? 任何想法?

您需要做的是在omniauth builder中將setup設置為true

  Rails.application.config.middleware.use OmniAuth::Builder do
    provider :twitter , :setup => true
  end

然后在您的routes.rb文件中設置添加以下內容,以定義將調用哪個路由進行設置

  get '/people/auth/twitter/setup' => 'sessions#twitter_setup' #needed for devise setup phase hook to work

之后,只需在會話控制器中設置符合設置路由的omniauth策略即可

def twitter_setup
  request.env['omniauth.strategy'].options[:consumer_key] = YOUR_DYNAMIC_KEY
    request.env['omniauth.strategy'].options[:consumer_secret] = YOUR_DYNAMIC_SECRET_KEY
    render :plain => "Setup complete.", :status => 404
end

這將使您能夠加載所需的應用程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM