vk-apps-launch-params
vk-apps-launch-params copied to clipboard
Добавить простой рабочий пример на Ruby
Привет, столкнулся с особенностями Ruby при реализации по примерам на других языках возможно кому-то будет полезен как пример при написании и в будущем будет улучшен
Немного покороче с использованием 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