vk-apps-launch-params icon indicating copy to clipboard operation
vk-apps-launch-params copied to clipboard

Добавить простой рабочий пример на Ruby

Open tuwilof opened this issue 1 year ago • 1 comments

Привет, столкнулся с особенностями Ruby при реализации по примерам на других языках возможно кому-то будет полезен как пример при написании и в будущем будет улучшен

tuwilof avatar Jun 25 '23 20:06 tuwilof

Немного покороче с использованием URI

require "openssl"
require "base64"
require "uri"

class VkCheckSign
  DIGEST = "sha256".freeze

  def self.call(vk_params:) # Полученые параметры
    sign_query = URI.encode_www_form(vk_params.select { |k, _| k.match(/^vk_/) }) 
    # в rails sign_query = vk_params.select { |k, _| k.match(/^vk_/) }.to_query
    hmac = OpenSSL::HMAC.digest(DIGEST, ENV["SECURE_KEY"], sign_query)
    Base64.encode64(hmac).gsub(/[\n=]/, "") == vk_params["sign"]
  end
end

Pash-tet avatar Nov 12 '23 22:11 Pash-tet