2013-06-11 1 views
4

내 레일 응용 프로그램은 두 가지 목적으로 트위터 Oauth를 두 번 사용해야합니다. 첫 번째는 일반적인 사용자 로그인입니다. 두 번째는 트윗을 미리 예약 할 수 있도록 계정을 추가하는 것입니다. 예를 들어 쭈쭈를 생각해보십시오. Facebook에 로그인하고 다양한 Facebook 계정을 연결할 수 있습니다. 이렇게하려면 두 가지 별도의 콜백이 필요합니다.두 개의 트위터 응용 프로그램을 Oauth와 함께 사용하므로 별도의 두 콜백을 사용할 수 있습니다.

독특한 기능을 가진 콜백을 만들기 위해 각각 별도의 콜백 URL이있는 두 개의 서로 다른 응용 프로그램을 만들 수 있다고 생각했습니다.

그러나 omniauth.rb 파일에는 트위터 공급자에 연결하는 방법이 하나뿐입니다.

Rails.application.middleware.use OmniAuth::Builder do 
    provider :twitter, ENV["TWITTER_KEY"], ENV["TWITTER_SECRET"] 
end 

은 다음과 같이 반복 작동하지 않습니다

Rails.application.middleware.use OmniAuth::Builder do 
    provider :twitter, ENV["TWITTER_KEY"], ENV["TWITTER_SECRET"] 
end 
Rails.application.middleware.use OmniAuth::Builder do 
    provider :twitter, ENV["TWITTERUSER_KEY"], ENV["TWITTERUSER_SECRET"] 
end 

을 사용할 콜백 구별 할 수있는 방법이 없기 때문에. Omniauth에 내장되어 있기 때문에 예를 들어 제공자를 'twitter2'로 만드는 방법을 찾지 못했습니다.

동일한 응용 프로그램에서 여러 개의 Twitter 콜백을 사용하는 해결책을 찾은 사람이 있습니까? 서로 다른 용도로 두 번 사용해야하는 Oauth 솔루션 (예 : Facebook 또는 Google Plus)을 보니 행복합니다.

고마워요!

+0

이 좋은 질문입니다 희망이 도움 www.mywonderfulwebsite.com/omniauth/twitter1처럼, 하나 또는 다른 공급자를 호출하는 이름을 사용합니다. 나는 트위터 제공자와 몇 가지 다른 것들을 사용하고있다. 나는 이것이 도움이되지 않는다는 것을 안다. 그러나 그것이 가능하다는 것을 나는 모른다. 확신 할 수 없다고 말할 수는 없습니다. 나는 잠복해서 대답이 있는지 볼 것입니다. 행운을 빕니다. – n8gard

답변

0

두 유스 케이스 모두에 대해 omniauth를 사용하려면 충돌 할 수 있으므로 중요한 우선 순위없이이 작업을 수행 할 수 없습니다. 다른 트위터 젬을 사용하여 트윗 글을 올리려면 트위터로 승인 해 줄 것을 고려 했습니까?

0

콜백 경로와 공급자의 이름을 정의하여이를 수행 할 수있는 방법이 있습니다.

Rails.application.middleware.use OmniAuth::Builder do 
    provider :twitter, ENV["TWITTER_KEY"], ENV["TWITTER_SECRET"], callback_path: "/omniauth/twitter1/callback", name: "twitter1" 
    provider :twitter, ENV["TWITTERUSER_KEY"], ENV["TWITTERUSER_SECRET"], callback_path: "/omniauth/twitter2/callback", name: "twitter2" 
end 

은 그럼 당신은

관련 문제