在Ffltter OAuth2_Client包嵌入式浏览器中删除Cookie

rdrgkggo  于 2022-09-21  发布在  其他
关注(0)|答案(1)|浏览(193)

我正在Ffltter中使用OAuth2_Client包,通过OAuth2访问各种服务的API,如Dropbox和Microsoft Graph。

该程序包工作得很好,但我无法让用户注销。在定义客户端本身时指定了revokeURL之后,我调用了该方法来删除存储的令牌(例如onedriveHelper.disConnect())。

问题是:当用户点击登录,但可能在注销后,嵌入的浏览器似乎已经将帐户存储在某种Cookie或会话中,因为用户仍在浏览器中登录。用户看不到用于输入凭据的字段。相反,用户已经登录,现在只需确认与应用程序的连接-就像他刚刚成功登录一样:

如何从OAuth2_Client使用的嵌入式浏览器中重置或永久删除所有Cookie或状态?

谢谢!克里斯

3j86kqsm

3j86kqsm1#

我也遇到过类似的问题,但我没有使用OAuth2_CLIENT包。如果您改用Flutter 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包的完整示例,请参阅此页面

相关问题