我正在尝试使用omniauth-steam gem通过Steam连接用户并检索用户的ID64.我正在使用本地网络上的服务器运行Ruby on Rails 5.0.1,运行Apache和Passenger.每当我尝试连接到/ auth/steam时,我都会被"连接"按钮重定向到Steam网页(我已经登录).当我单击按钮时,我会收到一个错误页面,其中包含"invalid_credentials"消息.我登录Steam并可以毫无问题地浏览网站.那条消息来自哪里?我怎样才能解决这个问题?到目前为止,这是我的代码.
Omniauth初始化程序:
# config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
provider :steam, Rails.application.secrets.steam_web_api_key
end
Run Code Online (Sandbox Code Playgroud)
控制器:
skip_before_filter :verify_authenticity_token, :only => :auth_callback
def index
end
def auth_callback
auth = request.env['omniauth.auth']
session[:current_user] = {
:nickname => auth.info['nickname'],
:image => auth.info['image'],
:uid => auth.uid
}
redirect_to root_url
end
Run Code Online (Sandbox Code Playgroud)
查看:
<p><%= link_to image_tag("http://cdn.steamcommunity.com/public/images/signinthroughsteam/sits_large_noborder.png"), '/auth/steam' %></p>
Run Code Online (Sandbox Code Playgroud)
路线:
get 'admin/index'
post 'auth/steam/callback' => 'admin#auth_callback'
root 'admin#index'
Run Code Online (Sandbox Code Playgroud)
错误堆栈:
invalid_credentials
Extracted source (around line #25):
23 def raise_out!
24 fail(env['omniauth.error'] || …Run Code Online (Sandbox Code Playgroud) 我在运行命令行的虚拟机Ubuntu服务器上使用git,我不知道vim(坦白说我现在不想学习它)所以我不想使用vimdiff.如何获取git的可用合并工具列表?
可以从命令行使用的合并工具列表的奖励点,这些合并工具没有太多陡峭的学习曲线!
我正在开发一个从 Steam API 读取数据的小型 Rails 3 应用程序。我所看到的是,我创建的任何 ActiveRecord 模型的模型属性都不会保存到数据库中,也不会输出debug。
这是我的示例模型
class NonPlayableApp < ActiveRecord::Base
attr_accessor :name, :steam_id
attr_accessible :name, :steam_id
end
Run Code Online (Sandbox Code Playgroud)
迁移文件为:
class CreateNonPlayableApps < ActiveRecord::Migration
def change
create_table :non_playable_apps do |t|
t.string :name
t.string :steam_id
t.timestamps
end
end
end
Run Code Online (Sandbox Code Playgroud)
下面是一些使用 Rails 控制台的测试,当我在控制器和/inspect或yaml模型中尝试它们时,我得到了相同的结果:
irb(main):001:0> temp = NonPlayableApp.new( steam_id: 33333, name: "Testing" )
=> #<NonPlayableApp id: nil, name: nil, steam_id: nil, created_at: nil, updated_at: nil>
irb(main):002:0> temp.steam_id
=> 33333
irb(main):003:0> temp.name
=> "Testing"
irb(main):004:0> temp.save …Run Code Online (Sandbox Code Playgroud)