+'use strict'
+
const logger = require('../helpers/logger')
// ---------------------------------------------------------------------------
const OAuthToken = sequelize.define('OAuthToken',
{
accessToken: {
- type: DataTypes.STRING
+ type: DataTypes.STRING,
+ allowNull: false
},
accessTokenExpiresAt: {
- type: DataTypes.DATE
+ type: DataTypes.DATE,
+ allowNull: false
},
refreshToken: {
- type: DataTypes.STRING
+ type: DataTypes.STRING,
+ allowNull: false
},
refreshTokenExpiresAt: {
- type: DataTypes.DATE
+ type: DataTypes.DATE,
+ allowNull: false
}
},
{
+ indexes: [
+ {
+ fields: [ 'refreshToken' ],
+ unique: true
+ },
+ {
+ fields: [ 'accessToken' ],
+ unique: true
+ },
+ {
+ fields: [ 'userId' ]
+ },
+ {
+ fields: [ 'oAuthClientId' ]
+ }
+ ],
classMethods: {
associate,
return OAuthToken
}
-// TODO: validation
-// OAuthTokenSchema.path('accessToken').required(true)
-// OAuthTokenSchema.path('client').required(true)
-// OAuthTokenSchema.path('user').required(true)
-
// ---------------------------------------------------------------------------
function associate (models) {
},
onDelete: 'cascade'
})
+
+ this.belongsTo(models.OAuthClient, {
+ foreignKey: {
+ name: 'oAuthClientId',
+ allowNull: false
+ },
+ onDelete: 'cascade'
+ })
}
function getByRefreshTokenAndPopulateClient (refreshToken) {