小编I-a*_*ser的帖子

获取"RuntimeError:SSL Session未初始化"错误导轨

目前,我正在与使用3脚OAuth安全性的API进行通信.

对于通信,我每次都需要访问令牌.访问令牌自创建日期起有效期为1年.

我已将其存储在数据库(AccessToken类的序列化对象)中.

但在进行API调用时,我遇到了以下错误.这是我的基本流程

1)获取access_token

consumer = OAuth::Consumer.new API_KEY,
  API_SECRET,
  {
  site: 'https://example.com',
  header: { Accept: 'application/nd.v3+json' },
  http_method: :get,
  request_token_url: @request_token_uri,
  access_token_url: @access_token_uri,
  authorize_url: @authorizerequest_token_uri
  }

  puts '***** Fetching request token *****'
  request_token = consumer.get_request_token({}, 'oob')
  puts "Request Token received - #{request_token.token}"
  puts
  puts 'Goto to url mentioned below to authorize. Paste the access token verifier'
  puts request_token.authorize_url

  verifier = gets.chomp
  puts
  puts
  puts '***** Fetching access token *****'
  access_token = request_token.get_access_token(oauth_verifier: verifier)
Run Code Online (Sandbox Code Playgroud)

2)将access_token存储在数据库中

access_token_user.rb

  class AccessTokenUser < ActiveRecord::Base …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails oauth

11
推荐指数
1
解决办法
172
查看次数

获取自定义omniauth策略的"身份验证失败!invalid_credentials:OAuth2 :: Error"

目前我正在开发rails 4项目,现在我必须链接/连接另一个应用程序(不是用于访问API的sso),例如example.com.(注意: example.com使用3脚oauth安全架构)

搜索后发现我必须实施omniouth策略.

为此,我已经审阅了这个链接.根据策略 - 贡献指南, 我能够完成设置和请求阶段,您可以在这里找到我的示例代码.

require 'multi_json'
require 'omniauth/strategies/oauth2'
require 'uri'

module OmniAuth
  module Strategies
    class MyAppStrategy < OmniAuth::Strategies::OAuth2
      option :name, 'my_app_strategy'

   option :client_options, {
    site: site_url,
    authorize_url: authorize_url,
    request_url: request_url,
    token_url: token_url,
    token_method: :post,
    header: { Accept: accept_header }
  }

  option :headers, { Accept: accept_header }
  option :provider_ignores_state, true

  def consumer
    binding.pry
    ::OAuth::Consumer.new(options.client_id, options.client_secret, options.client_options)
  end

  def request_phase # rubocop:disable MethodLength
    binding.pry
    request_token = consumer.get_request_token({:oauth_callback => callback_url}, options.request_params)
    session["oauth"] …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails oauth faraday

9
推荐指数
1
解决办法
2188
查看次数

如何将mysql数据库从heroku拉到本地机器

嗨我在heroku上托管的rails上有一个ruby,它使用mysql作为数据库.

现在我必须将数据库备份到本地计算机.但我在备份时遇到问题.

为此,我安装了tapsgem,我正在使用以下命令

heroku pg:pull mysql2://username@hostname.cleardb.com/heroku_database  local_database --app my_app
Run Code Online (Sandbox Code Playgroud)

但它给出了错误 !Your app has no databases.

任何人都可以指导我如何将mysql数据库从heroku拉到本地机器.

编辑

我使用了以下命令语法

heroku pg:pull <REMOTE_SOURCE_DATABASE> <LOCAL_TARGET_DATABASE>
Run Code Online (Sandbox Code Playgroud)

并获取REMOTE_SOURCE_DATABASE我使用了以下命令

 heroku config:get DATABASE_URL --app my_app
Run Code Online (Sandbox Code Playgroud)

我引用此link1link2 获取更详细的heroku文档.

ruby mysql ruby-on-rails heroku

7
推荐指数
1
解决办法
1396
查看次数

使用短信或电子邮件发送设计确认说明

嗨我已经使用设计进行身份验证,并且在其中进行了一些更改,例如我已使用电子邮件和手机号码提供登录.参考此链接.

这是我的代码

def self.find_for_database_authentication(conditions={})
    find_by(mobile_number: conditions[:email]) || find_by(email: conditions[:email])
  end
Run Code Online (Sandbox Code Playgroud)

我使用可确认模块发送确认说明,他们的电子邮件工作正常.

现在,如果用户没有输入此电子邮件(只输入手机号码),那么他必须发送短信(短信中的确认指令).

所以我有疑虑

  • How can I achieve this functionality?
  • How can I generate the same confirmation link for the same.

编辑(我试过以下解决方案来生成确认链接)

因为我也必须在SMS中发送确认链接,所以我尝试使用以下方法生成给定的链接

http://localhost:3000/admin_users/confirmation?confirmation_token=#{@user.confirmation_token}"
Run Code Online (Sandbox Code Playgroud)

它会生成以下类型的链接

http://localhost:3000/admin_users/confirmation?confirmation_token=00b2880c9662c65dc6d276db08532ea42d4333e6b7d2357d036cb9233eed41e8 
Run Code Online (Sandbox Code Playgroud)

当我累了使用这个链接时,它给我确认令牌无效错误.搜索后我发现了这个.那么如何在设计范围外生成确认链接.

ruby ruby-on-rails devise ruby-on-rails-3 ruby-on-rails-4

5
推荐指数
1
解决办法
955
查看次数

在rails 3中处理HEAD和GET请求时发出问题

目前,我们正面临处理HEAD和GET请求的问题.让我解释详细的情况

我们在我们的应用程序中集成了入站和出站SMS设施.

但是从过去的2-3个月开始,我们收到来自SMS服务提供商的2-3次GET请求,这对我们的系统产生了影响.

经过与SMS服务提供商的长时间讨论,他们说"从头到尾"处理"头部和获取请求"

我也提到了这个链接.您可以在此链接中找到相应的日志

那么任何人都可以建议如何解决这个问题.

编辑 经过研究,我们发现我们正在获取HEAD和GET请求中的所有参数,因为该服务器正在处理它.

ruby ruby-on-rails ruby-on-rails-3

5
推荐指数
1
解决办法
219
查看次数

如何在 Rails 中对 4 个表使用连接查询

我有下表 4 个模型

class ItemCode < ActiveRecord::Base
  belongs_to :item_point
end

class ItemPoint < ActiveRecord::Base
  belongs_to :item
  has_many :item_codes
end

class Item < ActiveRecord::Base
  belongs_to :prodcut_category
  has_many :item_points
end

class ProductCategory < ActiveRecord::Base  
  has_many :items
end
Run Code Online (Sandbox Code Playgroud)

现在我必须使用product_category找到item_codes详细信息,为此我使用了内部联接。这是mysql查询

SELECT *
FROM `item_codes` utc
INNER JOIN item_points rtp ON rtp.id = utc.item_point_id
INNER JOIN items ri ON ri.id = rtp.item_id
INNER JOIN product_catagories rpc ON rpc.id = ri.product_catagory_id
WHERE rpc.id =1
LIMIT 0 , 30
Run Code Online (Sandbox Code Playgroud)

现在我必须以 Acitve …

mysql ruby-on-rails ruby-on-rails-3

3
推荐指数
1
解决办法
1067
查看次数