FIX: Support for cookies in onebox redirects

This commit is contained in:
Robin Ward 2017-06-06 15:02:11 -04:00
parent 53b95f009f
commit 369bb78f8e
3 changed files with 13 additions and 5 deletions

View File

@ -48,7 +48,7 @@ gem 'onebox'
gem 'http_accept_language', '~>2.0.5', require: false gem 'http_accept_language', '~>2.0.5', require: false
gem 'ember-rails', '0.18.5' gem 'ember-rails', '0.18.5'
gem 'ember-source', '2.10.0' gem 'ember-source'
gem 'ember-handlebars-template', '0.7.5' gem 'ember-handlebars-template', '0.7.5'
gem 'barber' gem 'barber'
gem 'babel-transpiler' gem 'babel-transpiler'

View File

@ -214,7 +214,7 @@ GEM
omniauth-twitter (1.3.0) omniauth-twitter (1.3.0)
omniauth-oauth (~> 1.1) omniauth-oauth (~> 1.1)
rack rack
onebox (1.8.10) onebox (1.8.11)
fast_blank (>= 1.0.0) fast_blank (>= 1.0.0)
htmlentities (~> 4.3) htmlentities (~> 4.3)
moneta (~> 1.0) moneta (~> 1.0)
@ -409,7 +409,7 @@ DEPENDENCIES
email_reply_trimmer (= 0.1.6) email_reply_trimmer (= 0.1.6)
ember-handlebars-template (= 0.7.5) ember-handlebars-template (= 0.7.5)
ember-rails (= 0.18.5) ember-rails (= 0.18.5)
ember-source (= 2.10.0) ember-source
excon excon
execjs execjs
fabrication (= 2.9.8) fabrication (= 2.9.8)

View File

@ -144,9 +144,17 @@ module Oneboxer
def self.onebox_raw(url) def self.onebox_raw(url)
Rails.cache.fetch(onebox_cache_key(url), expires_in: 1.day) do Rails.cache.fetch(onebox_cache_key(url), expires_in: 1.day) do
uri = FinalDestination.new(url).resolve fd = FinalDestination.new(url)
uri = fd.resolve
return blank_onebox if uri.blank? || SiteSetting.onebox_domains_blacklist.include?(uri.hostname) return blank_onebox if uri.blank? || SiteSetting.onebox_domains_blacklist.include?(uri.hostname)
options = { cache: {}, max_width: 695, sanitize_config: Sanitize::Config::DISCOURSE_ONEBOX } options = {
cache: {},
max_width: 695,
sanitize_config: Sanitize::Config::DISCOURSE_ONEBOX
}
options[:cookie] = fd.cookie if fd.cookie
r = Onebox.preview(url, options) r = Onebox.preview(url, options)
{ onebox: r.to_s, preview: r.try(:placeholder_html).to_s } { onebox: r.to_s, preview: r.try(:placeholder_html).to_s }
end end