4 ruby ruby-on-rails ruby-on-rails-4
如何在以下各项之间共享变量:
config/initializers/omniauth.rb
Run Code Online (Sandbox Code Playgroud)
和
app/assets/javascripts/facebook.js.coffee
Run Code Online (Sandbox Code Playgroud)
?
必须在两个地方设置应用程序ID似乎疯狂笨重.
OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, 'YOUR-APP-ID-HERE', 'YOUR-APP-SECRET-HERE'
end
Run Code Online (Sandbox Code Playgroud)
和咖啡
jQuery ->
$('body').prepend('<div id="fb-root"></div>')
$.ajax
url: "#{window.location.protocol}//connect.facebook.net/en_US/all.js"
dataType: 'script'
cache: true
window.fbAsyncInit = ->
FB.init(appId: 'YOUR-APP-ID', cookie: true)
$('#sign_in').click (e) ->
e.preventDefault()
FB.login (response) ->
window.location = '/dedit/auth/facebook/callback' if response.authResponse
$('#sign_out').click (e) ->
FB.getLoginStatus (response) ->
FB.logout() if response.authResponse
true
Run Code Online (Sandbox Code Playgroud)
Rails 4.1:
您将secrets.yml
在config文件夹中找到一个文件.添加此功能是为了拥有凭据的公共存储位置.
配置/ secrets.yml
development:
fb_app_id: something
fb_app_secret: something
test:
fb_app_id: something
fb_app_secret: something
production:
fb_app_id: <%= ENV["FB_APP_ID"] %>
fb_app_secret: <%= ENV["FB_APP_SECRET"] %>
Run Code Online (Sandbox Code Playgroud)
要访问secrets.yml文件中的各种密钥,您只需执行以下操作:
Rails.application.secrets.fb_app_id
Rails.application.secrets.fb_app_secret
Run Code Online (Sandbox Code Playgroud)
给你的咖啡脚本.erb扩展名,然后你就可以:
FB.init(appId: '<%= Rails.application.secrets.fb_app_id %>', cookie: true)
Run Code Online (Sandbox Code Playgroud)
你的omniauth.rb看起来像这样:
OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, Rails.application.secrets.fb_app_id, Rails.application.secrets.fb_app_secret
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1886 次 |
最近记录: |