Fix throwing unhandled promise rejection if user doesn't exist in validatePasswordRedirect user to /profile on successful login
parent
be38b873eb
commit
8c17149f39
|
@ -45,8 +45,12 @@ async function query(query: string){
|
|||
}
|
||||
|
||||
async function validatePassword(username: string, password: string){
|
||||
let pass: any = await query('select password_hash from users where username='+raw.escape(username)+' limit 1');
|
||||
return await bcrypt.compare(password, pass[0].password_hash.toString());
|
||||
try {
|
||||
let pass: any = await query('select password_hash from users where username='+raw.escape(username)+' limit 1');
|
||||
return await bcrypt.compare(password, pass[0].password_hash.toString());
|
||||
} catch(e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
async function hash(pwd){
|
||||
|
|
|
@ -3,8 +3,15 @@
|
|||
<h3>Log in to {{ sitename }}</h3><span style="font-size: small;">Not registered yet? Sign up <a href="/register">here</a>.</br></br></span>
|
||||
<form action="/api/login" method="POST" target="responseFrame">
|
||||
Username: </br><input type="text" name="username" style="min-width: 300px" placeholder="e.g. lain"/></br>
|
||||
Password: </br><input type="password" name="password" style="min-width: 300px"/></br>
|
||||
Password: </br><input type="password" name="password" style="min-width: 300px"/></br></br>
|
||||
<input type="submit" value="Submit">
|
||||
</form>
|
||||
<iframe name="responseFrame" border="0" frameborder="0" style="display: inline;"></iframe>
|
||||
<script type="text/javascript">
|
||||
function handleLoad() {
|
||||
var r = JSON.parse(document.getElementById('responseFrame').contentDocument.documentElement.textContent).success
|
||||
if (typeof(r) !== 'undefined') window.location.href = '/profile'
|
||||
}
|
||||
</script>
|
||||
<iframe name="responseFrame" onload="handleLoad()" border="0" frameborder="0" style="display: inline;" id="responseFrame">
|
||||
</iframe>
|
||||
{% endblock %}
|
Reference in New Issue