big oauth improvements

This commit is contained in:
les
2020-01-21 01:24:10 +01:00
parent d1dbbebffb
commit e0b3dd8d4a
18 changed files with 289 additions and 172 deletions

View File

@@ -2,25 +2,18 @@
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('oauth_clients', {
client_id: {
type: Sequelize.STRING,
primaryKey: true
id: {
allowNull: false,
primaryKey: true,
type: Sequelize.STRING
},
name: Sequelize.STRING,
scopes: Sequelize.STRING,
client_secret: Sequelize.STRING,
scopes: Sequelize.STRING,
redirectUris: Sequelize.STRING,
website: Sequelize.STRING,
createdAt: { type: Sequelize.DATE, allowNull: false },
updatedAt: { type: Sequelize.DATE, allowNull: false },
userId: {
type: Sequelize.INTEGER,
references: {
model: 'users',
key: 'id'
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE'
},
updatedAt: { type: Sequelize.DATE, allowNull: false }
})
},

View File

@@ -6,19 +6,20 @@ module.exports = {
type: Sequelize.STRING,
primaryKey: true
},
expiresAt: Sequelize.DATE,
scope: Sequelize.STRING,
redirect_uri: Sequelize.STRING,
createdAt: { type: Sequelize.DATE, allowNull: false },
updatedAt: { type: Sequelize.DATE, allowNull: false },
oauthClientClientId: {
type: Sequelize.INTEGER,
clientId: {
type: Sequelize.STRING,
references: {
model: 'oauth_clients',
key: 'client_id'
key: 'id'
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE'
},
},
userId: {
type: Sequelize.INTEGER,
references: {
@@ -27,7 +28,7 @@ module.exports = {
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE'
},
}
})
},

View File

@@ -0,0 +1,45 @@
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('oauth_tokens', {
accessToken: {
allowNull: false,
primaryKey: true,
type: Sequelize.STRING
},
accessTokenExpiresAt: Sequelize.DATE,
refreshToken: Sequelize.STRING,
refreshTokenExpiresAt: Sequelize.DATE,
scope: Sequelize.STRING,
createdAt: { type: Sequelize.DATE, allowNull: false },
updatedAt: { type: Sequelize.DATE, allowNull: false },
clientId: {
type: Sequelize.STRING,
references: {
model: 'oauth_clients',
key: 'id'
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE'
},
userId: {
type: Sequelize.INTEGER,
references: {
model: 'users',
key: 'id'
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE'
}
})
},
down: (queryInterface, Sequelize) => {
/*
Add reverting commands here.
Return a promise to correctly handle asynchronicity.
Example:
*/
return queryInterface.dropTable('oauth_tokens')
}
}