1 const mongoose
= require('mongoose')
3 // ---------------------------------------------------------------------------
5 const OAuthTokenSchema
= mongoose
.Schema({
7 accessTokenExpiresOn: Date
,
8 client: { type: mongoose
.Schema
.Types
.ObjectId
, ref: 'OAuthClient' },
10 refreshTokenExpiresOn: Date
,
11 user: { type: mongoose
.Schema
.Types
.ObjectId
, ref: 'User' }
14 OAuthTokenSchema
.path('accessToken').required(true)
15 OAuthTokenSchema
.path('client').required(true)
16 OAuthTokenSchema
.path('user').required(true)
18 OAuthTokenSchema
.statics
= {
19 loadByRefreshToken: loadByRefreshToken
,
20 loadByTokenAndPopulateUser: loadByTokenAndPopulateUser
23 mongoose
.model('OAuthToken', OAuthTokenSchema
)
25 // ---------------------------------------------------------------------------
27 function loadByRefreshToken (refreshToken
, callback
) {
28 return this.findOne({ refreshToken: refreshToken
}, callback
)
31 function loadByTokenAndPopulateUser (bearerToken
, callback
) {
32 // FIXME: allow to use callback
33 return this.findOne({ accessToken: bearerToken
}).populate('user')