是的,我們做了Akber建議的。我們有兩個網站,xxx.com
和xxx.co.uk
,我們希望爲兩個網站OAuth使用一個github應用。
我們使用了Rails和OmniAuth寶石。
我們需要做的第一件事是追加com
或co.uk
回調URL
class OmniAuth::Strategies::GitHub
# Some code are omitted
def callback_url
url = super
matches = url.match(/xxx\.([a-z|\.]+)(:\d+)?\//)
if matches && matches[1] != 'com'
tld = matches[1]
url.gsub!("xxx.#{matches[1]}", 'xxx.com')
url << "/#{tld}"
end
url
end
end
結束和這裏的鐵軌中間件代碼,不會在github上的OAuth回調
def call(env)
match = env["PATH_INFO"].match(/\A\/users\/auth\/github\/callback\/(.+)\Z/)
if match
host = env["HTTP_HOST"]
[301, {"Location" => "#{env['rack.url_scheme']}://#{host.gsub('com', match[1])}/users/auth/github/callback?#{env["QUERY_STRING"]}"}, self]
else
@app.call(env)
end
end
重定向
會檢查出來 – phoet