Flutter 如何使用Flatter_appauth注销?
我需要退出与按钮按下在颤振 此包没有任何注销方法 这是我的get令牌代码:Flutter 如何使用Flatter_appauth注销?,flutter,authentication,openid-connect,Flutter,Authentication,Openid Connect,我需要退出与按钮按下在颤振 此包没有任何注销方法 这是我的get令牌代码: appAuth.authorizeAndExchangeCode(AuthorizationTokenRequest( clientID, redirectUrl, discoveryUrl: discoveryUrl, scopes: scopes, clientSecret: clientS
appAuth.authorizeAndExchangeCode(AuthorizationTokenRequest(
clientID, redirectUrl,
discoveryUrl: discoveryUrl,
scopes: scopes,
clientSecret: clientSecret
在该软件包中,没有任何解决方案,但此问题通过两种方式解决:
final AuthorizationTokenResponse result =
await appAuth.authorizeAndExchangeCode(
AuthorizationTokenRequest(
your_client_id,
your_localhost,
promptValues: ['login'],
discoveryUrl:
your_discovery_url,
scopes: [your_scopes],
),
);
这里有两个主要选项,作为第一步,我将根据穆罕默德的评论,看看你能否让第一个选项起作用: 选项1:简单注销 只需从应用程序中删除任何存储的令牌。问题是它不会删除授权服务器会话Cookie。因此,默认情况下,您不能强制另一个登录提示,例如以新用户身份登录。解决此问题的一种方法是在执行登录重定向时,将prompt=login作为参数发送 选项2:完全注销 完全注销涉及这两个操作,可能需要深入了解AppAuth内部:
- 从应用中删除存储的令牌
- 重定向以通过结束会话请求删除授权服务器会话cookie
- 2021年更新:
只需按如下方式打开注销页面:
if (await canLaunch(logoutUrl)) {
await launch(logoutUrl);
}
- 记住:在注销过程之后,必须重定向到自定义方案(在build.gradle文件中添加)
我用一个技巧解决了注销问题! 我用注销链接打开浏览器。然后重定向到[自定义url]。然后使用AppLink返回应用程序 这是我注销的方式:
当开发人员从他的github中删除此回购时,为什么要使用此软件包。@MohammadMirshahbazi我正在使用Flatter_appauth。问题中的url已修复。在你编辑这个链接之前,我们看到@MohammadMirshahbaziI知道,这是我的错误。我的Flatter_appauth packageOk bro有注销问题,我想,等等,我解决了你的问题。我只需要一个注销函数。它不应该在每次登录时请求登录信息!据我所知,目前还没有注销的方法,但使用该解决方案,您可以在每次登录时清除缓存,因此您注销是因为您的缓存是干净的,请尝试一下。这是有效的。我如何才能清除缓存?Flatter_appauth使用内置的webview,我无法访问它。我还删除了getTemporaryDirectory目录,但没有任何效果。您是否将刷新令牌存储在案例中的某个位置,以便让您的用户对其进行签名?
[
{
"relation": [
"delegate_permission/common.handle_all_urls"
],
"target": {
"namespace": "android_app",
"package_name": "[app.package.name]",
"sha256_cert_fingerprints": [
"The Certificate fingerprints, SHA256 created in step 2."
]
}
}
]