Sha256: 36f471479f28983eaee397a4388e05cc17892b4c064330374d85b07b0566d98c
Contents?: true
Size: 1.7 KB
Versions: 1
Compression:
Stored size: 1.7 KB
Contents
module DoorkeeperSsoClient module Mixins module PassportBase extend ActiveSupport::Concern included do belongs_to :identity, polymorphic: true validates :uid, presence: true, uniqueness: true before_save :ensure_mobile_token end module ClassMethods def create_from_omniauth(auth_hash) uid = { uid: auth_hash["extra"]["passport_id"] } passport = where(uid).first || new(uid) passport.update_attributes!( secret: auth_hash["extra"]["passport_secret"], token: auth_hash["credentials"]["token"], refresh_token: auth_hash["credentials"]["refresh_token"], token_expiry: auth_hash["credentials"]["expiry"], revoked_at: nil, revoke_reason: nil, last_login_at: Time.current, client_uid: auth_hash["extra"]["client_id"] ) end end # ClassMethods def update_from_pingback(pingback_hash) update_attributes!( revoked_at: pingback_hash["revoked_at"], revoke_reason: pingback_hash["revoke_reason"], last_login_at: pingback_hash["activity_at"] ) end def verified! update_attribute(:verified, true) end def unverified? !verified? end def modified! update_attribute(:modified, true) end def unmodified? !modified? end def delta { state: state, user: user } end def active? revoked_at.blank? end private def ensure_mobile_token self.mobile_token ||= SecureRandom.hex end end # Passport end # Mixins end # DoorkeeperSsoClient
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
doorkeeper_sso_client-0.4.10 | lib/doorkeeper_sso_client/mixins/passport_base.rb |