我正在尝试创建一个对用户进行身份验证的功能。我想在其他函数中使用此函数,这样我就不必重复身份验证过程,而是可以只说if(authenticate())。但是,在编写新的身份验证功能时,我很难返回根据if和else语句而变化的布尔值。
我尝试使用不同的变量声明,例如var和const,但它们似乎没有什么不同。
功能如下:
export function authenticate(username, password){
let isuserdatacorrect = false
axios.get(`http://localhost:3000/users?username=${username}`)
.then(res => {
// Checks if user exists at least and at most once
if(res.data.length != 1){
isuserdatacorrect = false
return
}
else{
let actualpassword
console.log(`res.data[0].password = ${res.data[0].password}`)
console.log(res)
actualpassword = res.data[0].password
// Entered password gets matched with password associated with username in database
if(actualpassword != password){
isuserdatacorrect = false
return
}
else{
isuserdatacorrect = true
return
}
}
})
return isuserdatacorrect
}
我注意到isuserdatacorrect的初始声明只能在if和else语句的范围内更改,但是我需要一种更改方式,以便它返回布尔值,因此可以在不同的函数中使用它。我不确定该怎么做。