【问题标题】:How can I read a HttpOnly cookie of my Flutter webview?如何读取 Flutter webview 的 HttpOnly cookie?
【发布时间】:2020-12-17 22:36:23
【问题描述】:

我有一个由 WebView 组成的 Flutter 应用程序。我想从这个 WebView 中读取一个特定的 cookie,它被标记为 HttpOnly。我怎样才能做到这一点?

我能够通过WebViewController.evaluateJavascript() 成功读取HttpOnly cookie,但我也对HttpOnly cookie 感兴趣。使用此方法不会显示 HttpOnly cookie。

【问题讨论】:

    标签: javascript flutter http dart cookies


    【解决方案1】:

    您可以使用await WebViewController.evaluateJavascript(source: 'document.cookie');读取cookie

    以下是有关您可以做什么的更多详细信息:Webview In Flutter

    final String cookies = await WebViewController.evaluateJavascript(source: 'document.cookie');
    final cookieList = cookies.split('; ');
    final result = cookieList.firstWhere((e) => e.startsWith(...), orElse: () => null);
    print(result);
    

    【讨论】:

    • 这正是我尝试过的。但是,使用 javascript 读取 cookie 时,不会显示 HttpOnly cookie。
    【解决方案2】:

    经过一番挖掘,我自己弄清楚了:必须使用WebViewCookieManager,一个单独的包。

    示例代码:

    import 'package:webview_cookie_manager/webview_cookie_manager.dart';
    ...
    final _cookieManager = WebviewCookieManager();
    final gotCookies = await _cookieManager.getCookies("https://example.com/");
    for (var item in gotCookies) {
      print(item);
    }
    

    另见 https://github.com/flutter/flutter/issues/27795https://pub.dev/packages/webview_cookie_manager

    【讨论】:

      猜你喜欢
      • 2019-07-04
      • 2011-12-25
      • 2019-04-24
      • 2014-01-23
      • 2023-03-12
      • 2016-08-03
      • 2019-07-07
      • 2020-05-14
      • 1970-01-01
      相关资源
      最近更新 更多