X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Foauth%2Foauth-token.ts;h=7f2313dad169588ca1f8a875acf438e7c3f729b9;hb=26d6bf6533023326fa017812cf31bbe20c752d36;hp=d2101ce86f9cb4ddfa668890537cc7ac313357f3;hpb=338eb9d33af690db716805fd2277bf68f473b58f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/oauth/oauth-token.ts b/server/models/oauth/oauth-token.ts index d2101ce86..7f2313dad 100644 --- a/server/models/oauth/oauth-token.ts +++ b/server/models/oauth/oauth-token.ts @@ -19,7 +19,7 @@ import { AccountModel } from '../account/account' import { ActorModel } from '../activitypub/actor' import { clearCacheByToken } from '../../lib/oauth-model' import * as Bluebird from 'bluebird' -import { MOAuthTokenUser } from '@server/typings/models/oauth/oauth-token' +import { MOAuthTokenUser } from '@server/types/models/oauth/oauth-token' export type OAuthTokenInfo = { refreshToken: string @@ -30,6 +30,7 @@ export type OAuthTokenInfo = { user: { id: number } + token: MOAuthTokenUser } enum ScopeNames { @@ -97,6 +98,9 @@ export class OAuthTokenModel extends Model { @Column refreshTokenExpiresAt: Date + @Column + authName: string + @CreatedAt createdAt: Date @@ -133,33 +137,41 @@ export class OAuthTokenModel extends Model { return clearCacheByToken(token.accessToken) } + static loadByRefreshToken (refreshToken: string) { + const query = { + where: { refreshToken } + } + + return OAuthTokenModel.findOne(query) + } + static getByRefreshTokenAndPopulateClient (refreshToken: string) { const query = { where: { - refreshToken: refreshToken + refreshToken }, include: [ OAuthClientModel ] } - return OAuthTokenModel.findOne(query) - .then(token => { - if (!token) return null - - return { - refreshToken: token.refreshToken, - refreshTokenExpiresAt: token.refreshTokenExpiresAt, - client: { - id: token.oAuthClientId - }, - user: { - id: token.userId - } - } as OAuthTokenInfo - }) - .catch(err => { - logger.error('getRefreshToken error.', { err }) - throw err - }) + return OAuthTokenModel.scope(ScopeNames.WITH_USER) + .findOne(query) + .then(token => { + if (!token) return null + + return { + refreshToken: token.refreshToken, + refreshTokenExpiresAt: token.refreshTokenExpiresAt, + client: { + id: token.oAuthClientId + }, + user: token.User, + token + } as OAuthTokenInfo + }) + .catch(err => { + logger.error('getRefreshToken error.', { err }) + throw err + }) } static getByTokenAndPopulateUser (bearerToken: string): Bluebird { @@ -181,14 +193,14 @@ export class OAuthTokenModel extends Model { static getByRefreshTokenAndPopulateUser (refreshToken: string): Bluebird { const query = { where: { - refreshToken: refreshToken + refreshToken } } return OAuthTokenModel.scope(ScopeNames.WITH_USER) .findOne(query) .then(token => { - if (!token) return new OAuthTokenModel() + if (!token) return undefined return Object.assign(token, { user: token.User }) })