Skip to content
This repository was archived by the owner on Apr 23, 2024. It is now read-only.

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

Open
tuwilof wants to merge 1 commit into
VKCOM:masterfrom
tuwilof:master
Open

Добавить простой рабочий пример на Ruby#14
tuwilof wants to merge 1 commit into
VKCOM:masterfrom
tuwilof:master

Conversation

@tuwilof

@tuwilof tuwilof commented Jun 25, 2023

Copy link
Copy Markdown

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

@Pash-tet

Pash-tet commented Nov 12, 2023

Copy link
Copy Markdown

Немного покороче с использованием 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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants