[chore] Use same basic code logic in user as in basicAuth

ad316c6d78679f27f362d8664e68d43dca0de836

QuantumEntangledAndy <sheepchaan@gmail.com>

Signed
1 files changed, +9 -6Showing whitespace changes
src/users.js+9 -6
@@ -656,22 +656,25 @@ async function basicUserLogin(request) {
656 return false;656 return false;
657 }657 }
658658
659 const authHeader = request.get('Authorization');659 const authHeader = request.headers.authorization;
660
660 if (!authHeader) {661 if (!authHeader) {
661 return false;662 return false;
662 }663 }
663664
664 const parts = authHeader.split(' ');665 const [scheme, credentials] = authHeader.split(' ');
665 if (!parts || parts.length < 2 || parts[0].toLowerCase() !== 'basic') {666
667 if (scheme !== 'Basic' || !credentials) {
666 return false;668 return false;
667 }669 }
668670
669 const b64auth = parts[1];671 const [username, password] = Buffer.from(credentials, 'base64')
670 const [login, password] = Buffer.from(b64auth, 'base64').toString().split(':');672 .toString('utf8')
673 .split(':');
671674
672 const userHandles = await getAllUserHandles();675 const userHandles = await getAllUserHandles();
673 for (const userHandle of userHandles) {676 for (const userHandle of userHandles) {
674 if (login === userHandle) {677 if (username === userHandle) {
675 const user = await storage.getItem(toKey(userHandle));678 const user = await storage.getItem(toKey(userHandle));
676 // Verify pass again here just to be sure679 // Verify pass again here just to be sure
677 if (user && user.enabled && user.password && user.password === getPasswordHash(password, user.salt)) {680 if (user && user.enabled && user.password && user.password === getPasswordHash(password, user.salt)) {