![](/img/trans.png)
[英]Devise + Omniauth Twitter + Twitter Gem updating attributes
[英]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.