Hos*_*our 6 authentication openid-connect flutter
我需要在 flutter 中按下按钮从flutter_appauth注销;
该软件包没有任何注销方法。
这是我的获取令牌代码:
appAuth.authorizeAndExchangeCode(AuthorizationTokenRequest(
clientID, redirectUrl,
discoveryUrl: discoveryUrl,
scopes: scopes,
clientSecret: clientSecret
Run Code Online (Sandbox Code Playgroud)
在该包中,没有任何解决方案,但这个问题可以通过两种方式解决:
这是您的浏览器,因此您可以清除浏览器的缓存:)
当您调用授权和交换代码的方法时,需要添加一个名为“promptValues”的附加参数,其中包含“login”值。这样,每次登录时,缓存中就没有任何值,并且总是要求重新登录。
做这个 :
final AuthorizationTokenResponse result =
await appAuth.authorizeAndExchangeCode(
AuthorizationTokenRequest(
your_client_id,
your_localhost,
promptValues: ['login'],
discoveryUrl:
your_discovery_url,
scopes: [your_scopes],
),
);
Run Code Online (Sandbox Code Playgroud)
这里有两个主要选项,作为第一步,我会看看你是否可以使第一个选项起作用,与穆罕默德的评论一致:
选项 1:简单注销
只需从您的应用程序中删除任何存储的令牌即可。这样做的问题是它不会删除授权服务器会话 Cookie。因此,默认情况下,您不能强制另一个登录提示,例如以新用户身份登录。解决此问题的一种方法是在执行登录重定向时发送prompt=login作为参数。
选项 2:完全注销
完全注销涉及这两个操作,并且可能需要您深入了解 AppAuth 的内部结构:
这是我的一些示例 Android 代码,用于启动 Chrome 自定义选项卡以进行注销重定向。
还有其他潜在问题,例如由于缺少用户手势,Chrome 间歇性出现白屏,注销后无法返回应用程序。
更多信息
我的博客文章提供了有关 AppAuth 集成的更多详细信息,以及您可以运行的代码示例(以防万一这些内容有用)。我直接使用 Kotlin / Swift 中的 AppAuth 库,而您需要处理 Flutter 插件的附加层:
| 归档时间: |
|
| 查看次数: |
6277 次 |
| 最近记录: |