3 const logger
= require('../helpers/logger')
5 // ---------------------------------------------------------------------------
7 module
.exports = function (sequelize
, DataTypes
) {
8 const OAuthToken
= sequelize
.define('OAuthToken',
11 type: DataTypes
.STRING
,
14 accessTokenExpiresAt: {
19 type: DataTypes
.STRING
,
22 refreshTokenExpiresAt: {
31 getByRefreshTokenAndPopulateClient
,
32 getByTokenAndPopulateUser
,
33 getByRefreshTokenAndPopulateUser
,
42 // ---------------------------------------------------------------------------
44 function associate (models
) {
45 this.belongsTo(models
.User
, {
54 function getByRefreshTokenAndPopulateClient (refreshToken
) {
57 refreshToken: refreshToken
59 include: [ this.associations
.OAuthClient
]
62 return this.findOne(query
).then(function (token
) {
63 if (!token
) return token
66 refreshToken: token
.refreshToken
,
67 refreshTokenExpiresAt: token
.refreshTokenExpiresAt
,
77 }).catch(function (err
) {
78 logger
.info('getRefreshToken error.', { error: err
})
82 function getByTokenAndPopulateUser (bearerToken
) {
85 accessToken: bearerToken
87 include: [ this.sequelize
.models
.User
]
90 return this.findOne(query
).then(function (token
) {
91 if (token
) token
.user
= token
.User
97 function getByRefreshTokenAndPopulateUser (refreshToken
) {
100 refreshToken: refreshToken
102 include: [ this.sequelize
.models
.User
]
105 return this.findOne(query
).then(function (token
) {
106 token
.user
= token
.User
112 function removeByUserId (userId
, callback
) {
119 return this.destroy(query
).asCallback(callback
)