Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 注销时使AWS Cognoto令牌无效_Python_Swift_Authentication_Amazon Cognito_Aws Cognito - Fatal编程技术网

Python 注销时使AWS Cognoto令牌无效

Python 注销时使AWS Cognoto令牌无效,python,swift,authentication,amazon-cognito,aws-cognito,Python,Swift,Authentication,Amazon Cognito,Aws Cognito,我正在使用Python后端构建Swift应用程序,我想使用AWS Cognoto进行身份验证和注册流 目前,我正在使用以下代码登录 let user=pool?.getUser(电子邮件) 用户?.getSession(电子邮件、密码:密码、验证数据:无) .continueWith{task in in //处理错误/成功 归零 } 池在上面使用self.Pool=AWSCognitoIdentityUserPool.default()调用进行初始化 在应用程序启动时,我正在检查用户是否经过

我正在使用Python后端构建Swift应用程序,我想使用AWS Cognoto进行身份验证和注册流

目前,我正在使用以下代码登录

let user=pool?.getUser(电子邮件)
用户?.getSession(电子邮件、密码:密码、验证数据:无)
.continueWith{task in in
//处理错误/成功
归零
}
池在上面使用
self.Pool=AWSCognitoIdentityUserPool.default()
调用进行初始化

在应用程序启动时,我正在检查用户是否经过身份验证,并获取其访问令牌:

如果AWSSignInManager.sharedInstance().isLoggedIn{
如果let user=pool?.currentUser(){
user.getSession()
.continueWith{task in in
令牌=任务.result?.accessToken?.tokenString
归零
}
}
}
我正在将这个令牌传递到后端。在后端,我通过Python授权库获取用户数据:

来自进口许可证Cognito
u=Cognito(“id”,“key”,user\u pool\u region=“us-east-1”)
u、 访问令牌=“令牌”
res=u.get\u user(attr\u map={“sub”:“user\u id”,“email”:“email”})
若令牌有效,我将获取用户的数据,否则将引发异常。但在客户端注销后,此令牌仍然有效。我正在使用以下注销代码:

AWSSignInManager.sharedInstance().logout{(结果:Any?,错误?)在中
//处理结果
}

我知道,这个令牌将在超时后过期,并且不会被刷新,因为在下一次登录时,用户将获得另一个ACCES/refresh tokens对,但我想在注销时立即使令牌失效,可能吗?或者我不理解Cognito,并且没有正确地使用它?

在浏览github和AWS论坛之后,我找到了chris radek对这个问题的(半)答案,他是AWS sdk for js的贡献者

以下是讨论:

如果你不想全部阅读,chris说,基本上,代币的标准有效期为一小时,但是

通过修改某个参数,可以将其减少到最小值 15分钟。但是,您不能立即使令牌失效 签出

下面是描述如何缩短时间的javascript文档:

AWS关于该主题的文档:

以下是可以在python中调用的匹配函数:


这是可以更改令牌持续时间的地方

在浏览了github和AWS论坛之后,我找到了一个(半)答案,作者是AWS sdk for js的贡献者chris radek

以下是讨论:

如果你不想全部阅读,chris说,基本上,代币的标准有效期为一小时,但是

通过修改某个参数,可以将其减少到最小值 15分钟。但是,您不能立即使令牌失效 签出

下面是描述如何缩短时间的javascript文档:

AWS关于该主题的文档:

以下是可以在python中调用的匹配函数:


这是可以更改令牌持续时间的地方

谢谢,我认为答案会是那样的,但我希望会有一些解决方案谢谢,我认为答案会是那样的,但我希望会有一些解决方案