class OAuth2Token(db.Model, BaseModel, OAuth2TokenMixin): __tablename__ = 'oauth2_token' id = db.Column(db.Integer, primary_key=True) user_id = db.Column( db.Integer, db.ForeignKey(db_schema + '.user.id', ondelete='CASCADE')) user = db.relationship(User, primaryjoin=User.id == foreign(user_id)) def is_refresh_token_expired(self): expires_at = self.issued_at + self.expires_in * 2 return expires_at < time.time()
class OAuth2Client(db.Model, BaseModel, OAuth2ClientMixin): __tablename__ = 'oauth2_client' id = db.Column(db.Integer, primary_key=True) @cached_property def client_metadata(self): if self._client_metadata: return self._client_metadata return {}
class PermissionScope(db.Model, BaseModel): __tablename__ = 'permission_scope' key = db.Column(db.Text, primary_key=True)
class OAuth2AuthorizationCode(db.Model, BaseModel, OAuth2AuthorizationCodeMixin): __tablename__ = 'oauth2_code' id = db.Column(db.Integer, primary_key=True)
class License(db.Model, BaseModel): __tablename__ = 'license' product_key = db.Column(db.Text, primary_key=True)