38 lines
1.1 KiB
Ruby
38 lines
1.1 KiB
Ruby
class OauthEducoderForm
|
|
include ActiveModel::Model
|
|
|
|
attr_accessor :login, :oauth_token, :callback_url, :raw_pay_load
|
|
|
|
validates :login, presence: true
|
|
validates :oauth_token, presence: true
|
|
validates :callback_url, presence: true
|
|
validates :raw_pay_load, presence: true
|
|
|
|
validate :check_oauth_token!
|
|
validate :check_callback_url!
|
|
|
|
def checke_raw_pay_load!
|
|
secret = OauthEducoder.config[:access_key_secret]
|
|
|
|
before_raw_pay_load = "#{login}#{secret}#{Time.now.to_i/60-1}"
|
|
now_raw_pay_load = "#{login}#{secret}#{Time.now.to_i/60-1}"
|
|
|
|
if raw_pay_load != Digest::SHA1.hexdigest(now_raw_pay_load) || raw_pay_load != Digest::SHA1.hexdigest(before_raw_pay_load)
|
|
raise '你的请求无效值无效.'
|
|
end
|
|
end
|
|
|
|
def checke_raw_pay_load!
|
|
secret = OauthEducoder.config[:access_key_secret]
|
|
raise 'oauth_token值无效.' if oauth_token != secret
|
|
end
|
|
|
|
def check_callback_url!
|
|
request_host = URI.parse(callback_url).host
|
|
callback_url = OauthEducoder.config[:callback_url_host]
|
|
|
|
raise 'callback_url参数无效.' if request_host != callback_url
|
|
end
|
|
|
|
end
|