Skip to content

Instantly share code, notes, and snippets.

@saltukalakus
Created April 9, 2020 16:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save saltukalakus/968614cb68af2969a0f83afe295af3dd to your computer and use it in GitHub Desktop.
Save saltukalakus/968614cb68af2969a0f83afe295af3dd to your computer and use it in GitHub Desktop.
Azure MySQL Login.js
function login(email, password, callback) {
const mysql = require('mysql@2.18.1');
const bcrypt = require('bcrypt');
const azureCa = "-----BEGIN CERTIFICATE-----\nMIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9aMQswCQYDVQQGEwJJ\n....\nR9I4LtD+gdwyah617jzV/OeELqYzmp\n-----END CERTIFICATE-----\n";
const connection = mysql.createConnection({
host: configuration.DbHost,
user: configuration.DbUser,
password: configuration.DbPassword,
database: configuration.DbName,
port: 3306,
ssl: {
ca: azureCa,
}
});
connection.connect();
const query = 'SELECT id, fname, lname, email, password FROM users WHERE disabled = 0 AND email = ?';
connection.query(query, [ email ], function(err, results) {
if (err) return callback(err);
if (results.length === 0) return callback(new WrongUsernameOrPasswordError(email));
const user = results[0];
const hash = user.password.replace(/^\$2y(.+)$/i, '$2a$1');
bcrypt.compare(password, hash, function(err, isValid) {
if (err || !isValid) {
return callback(err || new WrongUsernameOrPasswordError(email));
}
callback(null, {
user_id: user.id.toString(),
name: user.fname + ' ' + user.lname,
firstname: user.fname,
lastname: user.lname,
email: user.email
});
});
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment