现在我想在UserPool中授权用户。我关注这个链接--https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html-client-side Authentication flow。但是“respondtoAuthChallenge”-返回NotAuthorizedException,错误的用户名或密码。
import * as AWS from 'aws-sdk'
import { SRPClient, calculateSignature, getNowString } from 'amazon-user-pool-srp-client'
const userPoolId = 'XXX'
const ClientId = 'XXX'
const verifyUser = () => {
AWS.config.region = 'us-west-2'
const srp = new SRPClient(userPoolId)
const SRP_A = srp.calculateA()
var params = {
AuthFlow: 'USER_SRP_AUTH',
ClientId,
AuthParameters: {
USERNAME: formState.email,
SRP_A,
},
}
let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider()
cognitoidentityserviceprovider.initiateAuth(params, function (err, data) {
if (err) {
const error = err.message ? err.message : err
console.log(error)
}
else {
console.log(data) // --> data.session is undefined
if (data.ChallengeParameters && data.ChallengeName) {
const passwordAuthenticationKey =
srp.getPasswordAuthenticationKey(
data.ChallengeParameters.USER_ID_FOR_SRP,
formState.password,
data.ChallengeParameters.SRP_B,
data.ChallengeParameters.SALT
)
const dateNow = getNowString()
const signatureString = calculateSignature(
passwordAuthenticationKey,
userPoolId,
data.ChallengeParameters.USER_ID_FOR_SRP,
data.ChallengeParameters.SECRET_BLOCK, dateNow
)
var params = {
ChallengeName: data.ChallengeName,
ClientId,
ChallengeResponses: {
// PASSWORD_VERIFIER
PASSWORD_CLAIM_SIGNATURE: signatureString,
PASSWORD_CLAIM_SECRET_BLOCK: data.ChallengeParameters.SECRET_BLOCK,
TIMESTAMP: dateNow,
USERNAME: data.ChallengeParameters.USER_ID_FOR_SRP,
},
Session: data.Session, // undefined
};
cognitoidentityserviceprovider.respondToAuthChallenge(params, function (err, data) {
if (err) {
const error = err.message ? err.message : err
console.log(error) // Incorrect username or password
}
else {
console.log(data)
}
})
}
}
})
}
我创建了不同的用户,但没有运气。用户已注册,但respondToAuthChallenge引发错误。InitiateAuth响应返回ChalleneName和challengeParameters,但不提供会话。
我发现了一个我无法理解的语句--“当RespondToAuthChallenge Production of password的下一个操作运行时,Amazon Cognito返回一个通用的NotAuthorizedException错误,指示用户名或密码不正确。”在https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-management-errors.html中
如果你有任何解决方案/想法,请告诉我,谢谢!!
首先,基于RespondToAuthChallenge文档,Session字段不是必需字段,因此如果没有提供Session字段,您甚至不需要为PASSWORD_VERIFIER质询传递Session字段。
其次,是否可以包含完整的错误消息以及从initiateAuth和respondToAuthChallenge操作获得的响应,以便我查看一下?
还要记住,来自initiateAuth操作的响应中的session字段是“session”,大写字母是“s”(这里是initiateAuth操作的文档),所以您必须用data.session取回session值,而不是data.session。
在cognito用户池中,我有两个不同的组:Admin 现在我想授权userpool中的用户。我正在关注这个链接-https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html -客户端身份验证流。但是“RespondToAuthChalleng
我想知道我是否以正确的方式编写了泽西客户端代码。 登录页面应该在输入正确的用户名和密码后重定向到主页,服务器端返回一个空字符串()。如果其中一个不正确,服务器端代码返回。 页面功能运行良好,但当我使用正确的用户名和密码对使用客户端代码进行测试时,它返回,响应返回200OK。下面是我的客户端代码。 我怀疑用户名和密码没有按HTML文件要求的正确输入位置提交。下面是我的HTML文件块。
我有一个项目托管在GitHub上。我在尝试将我的修改推到主控器上时失败了。我总是收到以下错误消息 但是,将我的ssh键设置为github似乎可以。实际上,当我执行时,我得到了 这似乎表明从那方面来看一切都是正常的(eurydyce是我的github用户名)。我严格遵循了github上给出的说明和许多堆栈讨论的建议,但没有办法。你知道我做错了什么吗?
我正在使用以下代码创建一个加密的PDF文件: 我省略了创建单元格和表格的代码,以及创建可以在其中输入firstname、lastname等值的表单的代码。 然后我这样操作表单。
问题内容: 我试图在Go项目的默认模板上使用GitHub上Go项目的CircleCI。 作为参考,这里的默认是什么 样子 : 作业运行时,我得到一个与代码本身完全无关的错误。 returned incorrect signature type There is no tracking information for the current branch. Please specify which
用户:用户名=>{密码:哈希,年龄:45} 用户:0=>{USERNAME:USERNAME,password:HASH,年龄:45} 请注意,我希望通过名称查找用户,因此需要第二组键值来将用户名与ID相关联。 考虑到每个用户名都是唯一的,并且必须是字母数字的,是否有任何特殊的原因来说明使用ID系统可能是有益的。 附言。由于Redis处理哈希的方式,我实际上不确定这两种方法之间的内存差异,所以关于