我正在使用Flutter中的oauth2_client包来通过Oauth2访问各种服务的API,比如Dropbox和MicrosoftGraph。
这个包很好用,但是我不能让用户注销。在定义客户机本身时,我调用了方法来删除存储的令牌(例如onedriveHelper.disconnect()),然后指定了revokeURL。
问题是:当用户单击登录时,但可能是注销后,嵌入式浏览器似乎已经将帐户存储在某种cookie或会话中,因为用户仍在浏览器中登录。用户看不到要输入凭据的字段。相反,用户已经登录,现在只需确认与应用程序的连接-就好像他刚刚成功地登录了一样:

如何从oauth2_client使用的嵌入式浏览器中重置或永久删除所有cookie或状态?
谢谢!克里斯
发布于 2022-08-30 08:22:18
我也遇到了类似的问题,但我没有使用oauth2_client包。如果您使用颤振AppAuth包(或者您的包可能有类似的选项),AuthorizationTokenRequest对象将为promptValues提供一个可选的参数。如果“登录”是提示之一,则嵌入的浏览器不会自动登录。下面是我在代码中使用它的方式:
final AuthorizationTokenResponse? result =
await appAuth.authorizeAndExchangeCode(
AuthorizationTokenRequest(AUTH0_CLIENT_ID, AUTH0_REDIRECT_URI,
issuer: AUTH0_ISSUER,
scopes: <String>['openid', 'profile', 'offline_access'],
promptValues: ['log in']),
);有关使用包:https://github.com/auth0-blog/flutter-authentication的完整示例,请参阅此页面
https://stackoverflow.com/questions/70716822
复制相似问题