]>
cat aescling's git repositories - mastodon.git/blob - app/lib/proof_provider/keybase.rb
1 # frozen_string_literal: true
3 class ProofProvider
::Keybase
4 BASE_URL
= ENV.fetch('KEYBASE_BASE_URL', 'https://keybase.io')
5 DOMAIN
= ENV.fetch('KEYBASE_DOMAIN', Rails
.configuration
.x
.local_domain
)
7 class Error
< StandardError
; end
9 class ExpectedProofLiveError
< Error
; end
11 class UnexpectedResponseError
< Error
; end
13 def initialize(proof
= nil)
18 ProofProvider
::Keybase::Serializer
22 ProofProvider
::Keybase::Worker
26 unless @proof.token
&.size
== 66
27 @proof.errors
.add(:base, I18n
.t('identity_proofs.errors.keybase.invalid_token'))
31 return if @proof.provider_username
.blank
?
34 @proof.verified
= true
37 @proof.errors
.add(:base, I18n
.t('identity_proofs.errors.keybase.verification_failed', kb_username
: @proof.provider_username
))
42 worker_class
.new
.perform(@proof)
43 rescue ProofProvider
::Keybase::Error
47 def on_success_path(user_agent
= nil)
48 verifier
.on_success_path(user_agent
)
52 @badge ||= ProofProvider
::Keybase::Badge.new(@proof.account
.username
, @proof.provider_username
, @proof.token
)
58 @verifier ||= ProofProvider
::Keybase::Verifier.new(@proof.account
.username
, @proof.provider_username
, @proof.token
)
This page took 0.095236 seconds and 5 git commands to generate.