@constlab/vesper-jwt-auth
Advanced tools
Comparing version 0.0.5 to 0.0.6
@@ -52,2 +52,11 @@ import { IUser } from "../base/IUser"; | ||
clearAllTokens(user: IUser): Promise<DeleteResult>; | ||
/** | ||
* Check for maximum saved tokens | ||
* | ||
* @protected | ||
* @param {IUser} user | ||
* @returns {Promise<void>} | ||
* @memberof AuthService | ||
*/ | ||
protected checkForMaximum(user: IUser): Promise<void>; | ||
} |
@@ -104,19 +104,20 @@ "use strict"; | ||
async saveToken(user, userAgent, refreshToken) { | ||
const tokensCount = await this.entityManager.count(Token_1.Token, { | ||
where: { userId: user.id.toString() } | ||
await this.checkForMaximum(user); | ||
const savedToken = await this.entityManager.findOne(Token_1.Token, { | ||
where: { | ||
client: userAgent, | ||
userId: user.id.toString() | ||
} | ||
}); | ||
if (tokensCount + 1 >= this.config.refreshToken.maxSavedTokens) { | ||
await this.clearAllTokens(user); | ||
if (savedToken !== undefined) { | ||
savedToken.token = refreshToken; | ||
return await this.entityManager.save(savedToken); | ||
} | ||
else { | ||
await this.entityManager.delete(Token_1.Token, { | ||
client: userAgent, | ||
userId: user.id.toString() | ||
}); | ||
const newToken = new Token_1.Token(); | ||
newToken.client = userAgent; | ||
newToken.token = refreshToken; | ||
newToken.userId = user.id.toString(); | ||
return await this.entityManager.save(Token_1.Token, newToken); | ||
} | ||
const newToken = new Token_1.Token(); | ||
newToken.client = userAgent; | ||
newToken.token = refreshToken; | ||
newToken.userId = user.id.toString(); | ||
return await this.entityManager.save(Token_1.Token, newToken); | ||
} | ||
@@ -135,2 +136,18 @@ /** | ||
} | ||
/** | ||
* Check for maximum saved tokens | ||
* | ||
* @protected | ||
* @param {IUser} user | ||
* @returns {Promise<void>} | ||
* @memberof AuthService | ||
*/ | ||
async checkForMaximum(user) { | ||
const tokensCount = await this.entityManager.count(Token_1.Token, { | ||
where: { userId: user.id.toString() } | ||
}); | ||
if (tokensCount + 1 >= this.config.refreshToken.maxSavedTokens) { | ||
await this.clearAllTokens(user); | ||
} | ||
} | ||
}; | ||
@@ -146,2 +163,2 @@ __decorate([ | ||
exports.AuthService = AuthService; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9BdXRoU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBb0M7QUFDcEMsaURBQW9EO0FBRXBELDBCQUFnQztBQUdoQywwQ0FBdUM7QUFDdkMscUNBQXNEO0FBU3RELElBQWEsV0FBVyxHQUF4QixNQUFhLFdBQVc7SUFJdkIsWUFDUyxPQUFlLGdCQUFTLENBQUMsR0FBRyxDQUFTLE1BQU0sQ0FBQyxFQUM1QyxTQUFTLGNBQVUsQ0FBQyxNQUFNLEVBQzFCLGFBQTRCO1FBRjVCLFNBQUksR0FBSixJQUFJLENBQXdDO1FBQzVDLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQ2xDLENBQUM7SUFFSjs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBYSxFQUFFLFFBQWdCLEVBQUUsWUFBb0IsRUFBRTtRQUNqRSxNQUFNLElBQUksR0FBVSxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDbEM7UUFDRCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3pELFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTO1NBQzdDLENBQUMsQ0FBQztRQUNILE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJ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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9BdXRoU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBb0M7QUFDcEMsaURBQW9EO0FBRXBELDBCQUFnQztBQUdoQywwQ0FBdUM7QUFDdkMscUNBQXNEO0FBU3RELElBQWEsV0FBVyxHQUF4QixNQUFhLFdBQVc7SUFJdkIsWUFDUyxPQUFlLGdCQUFTLENBQUMsR0FBRyxDQUFTLE1BQU0sQ0FBQyxFQUM1QyxTQUFTLGNBQVUsQ0FBQyxNQUFNLEVBQzFCLGFBQTRCO1FBRjVCLFNBQUksR0FBSixJQUFJLENBQXdDO1FBQzVDLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQ2xDLENBQUM7SUFFSjs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBYSxFQUFFLFFBQWdCLEVBQUUsWUFBb0IsRUFBRTtRQUNqRSxNQUFNLElBQUksR0FBVSxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDbEM7UUFDRCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3pELFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTO1NBQzdDLENBQUMsQ0FBQztRQUNILE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJ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 |
{ | ||
"name": "@constlab/vesper-jwt-auth", | ||
"version": "0.0.5", | ||
"version": "0.0.6", | ||
"description": "vesper + jwt auth", | ||
@@ -12,3 +12,4 @@ "main": "dist/index.js", | ||
"build": "NODE_ENV=prod rm -rf dist/* && tsc && (cd src/ && find . -name '*.gql' | cpio -pdm ../dist/)", | ||
"test": "echo \"No test specified\" && exit 0" | ||
"test": "echo \"No test specified\" && exit 0", | ||
"clean-publish": "clean-publish" | ||
}, | ||
@@ -43,3 +44,4 @@ "keywords": [ | ||
"@types/jsonwebtoken": "^7.2.8", | ||
"@types/node": "^10.7.0", | ||
"@types/node": "^10.7.1", | ||
"clean-publish": "^1.0.9", | ||
"conventional-changelog-cli": "^2.0.1", | ||
@@ -46,0 +48,0 @@ "sqlite3": "^4.0.2", |
@@ -109,20 +109,22 @@ import * as jwt from "jsonwebtoken"; | ||
async saveToken(user: IUser, userAgent: string, refreshToken: string): Promise<Token> { | ||
const tokensCount: number = await this.entityManager.count(Token, { | ||
where: { userId: user.id.toString() } | ||
}); | ||
if (tokensCount + 1 >= this.config.refreshToken.maxSavedTokens) { | ||
await this.clearAllTokens(user); | ||
} else { | ||
await this.entityManager.delete(Token, { | ||
await this.checkForMaximum(user); | ||
const savedToken = await this.entityManager.findOne(Token, { | ||
where: { | ||
client: userAgent, | ||
userId: user.id.toString() | ||
}); | ||
} | ||
} | ||
}); | ||
if (savedToken !== undefined) { | ||
savedToken.token = refreshToken; | ||
const newToken = new Token(); | ||
newToken.client = userAgent; | ||
newToken.token = refreshToken; | ||
newToken.userId = user.id.toString(); | ||
return await this.entityManager.save(savedToken); | ||
} else { | ||
const newToken = new Token(); | ||
newToken.client = userAgent; | ||
newToken.token = refreshToken; | ||
newToken.userId = user.id.toString(); | ||
return await this.entityManager.save(Token, newToken); | ||
return await this.entityManager.save(Token, newToken); | ||
} | ||
} | ||
@@ -142,2 +144,19 @@ | ||
} | ||
/** | ||
* Check for maximum saved tokens | ||
* | ||
* @protected | ||
* @param {IUser} user | ||
* @returns {Promise<void>} | ||
* @memberof AuthService | ||
*/ | ||
protected async checkForMaximum(user: IUser): Promise<void> { | ||
const tokensCount: number = await this.entityManager.count(Token, { | ||
where: { userId: user.id.toString() } | ||
}); | ||
if (tokensCount + 1 >= this.config.refreshToken.maxSavedTokens) { | ||
await this.clearAllTokens(user); | ||
} | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
64827
1215
10