[英]AWS Cognito Authentication Not Working as Expected
我正在嘗試按照文檔通過我的登錄表單對用戶進行身份驗證。 用例4說這是用於驗證用戶的身份,但是我仍然收到用戶未驗證的錯誤,因此感到困惑。
我可以成功調用authenticateUser
函數並獲取令牌,然后重定向到另一個頁面,但是當該頁面調用getUserAttributes
時,我收到用戶未登錄的錯誤。
login.vue
const userPool = new CognitoUserPool(cognitoConfig)
const authenticationData = {
Username: this.username,
Password: this.password
}
const authenticationDetails = new AuthenticationDetails(authenticationData)
const userData = {
Username: this.username,
Pool: userPool
}
const user = new CognitoUser(userData)
const self = this
user.authenticateUser(authenticationDetails, {
onSuccess: result => {
const token = result.getAccessToken().getJwtToken()
console.log('token = ', token)
self.$store.commit('user/SET_USERNAME', self.username)
self.$router.push('/dashboard')
},
onFailure: err => {
console.log('err = ', err)
}
})
dashboard.vue
const userPool = new CognitoUserPool(cognitoConfig)
const userData = {
Username: this.user.username,
Pool: userPool
}
console.log('userData = ', userData)
const user = new CognitoUser(userData)
user.getUserAttributes((err, result) => {
if (err) {
console.log('getUserAttributes err = ', err)
alert(err.message || JSON.stringify(err))
return
}
for (let i = 0; i < result.length; i++) {
console.log('attribute ' + result[i].getName() + ' has value ' + result[i].getValue())
}
})
在dashboard.vue中,您正在創建一個未通過身份驗證的新用戶實例。 在autheticateUser之后嘗試嘗試getUserAttributes。
原因是,當您調用authenticateUser時,成功后,一些屬性將被設置到調用用戶實例,令牌,簽名等。
然后,當您調用另一個方法(如getUserAttributes)時,它將使用該信息。
您在dashboard.vue中的代碼失敗,因為在您調用該方法時,未對用戶實例進行身份驗證,因為您可以從錯誤消息中讀取內容。
您需要驗證所有用戶實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.