DocumentServer/OnlineEditorsExample/OnlineEditorsExampleRuby/app/models/signature.rb
2015-04-29 19:10:50 +03:00

43 lines
905 B
Ruby

class Signature
class << self
def create(key, secret)
#secret = '_ContactUs_'
#key = '{"expire":"\/Date(1422449303583)\/","key":"mo.docx1422449303571","key_id":"_ContactUs_","user_count":0}'
payload = get_hash_base64(key + secret) + '?' + key
encode = url_token_encode(payload)
end
def get_hash_base64(str)
utf8 = str.encode('utf-8')
sha256 = Digest::SHA256.digest(utf8)
base64 = Base64.strict_encode64(sha256)
end
def url_token_encode(str)
utf8 = str.encode('utf-8')
base64 = Base64.strict_encode64(utf8)
cnt = 0
base64.each_char {|c|
if c == '='
cnt += 1
end
}
signature = base64.gsub('=', '') + cnt.to_s
signature = signature.gsub('+', '-').gsub('/', '_')
signature = URI.encode(signature)
end
end
end