美文网首页
3.2.flutter-https验证

3.2.flutter-https验证

作者: ChaosHeart | 来源:发表于2023-05-05 17:31 被阅读0次
import 'dart:core';
import 'dart:io';

import 'package:dio/adapter.dart';
import 'package:dio/dio.dart';
import 'package:flutter/services.dart';
import 'package:imes_base_plugins/common/logs.dart';

///https验证
addHttps1(Dio dio) async {
  ByteData data = await rootBundle.load('assets/certificate/DigiCertCA.crt');
  logs("data1: $data");
  (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
    SecurityContext securityContext = SecurityContext();
    securityContext.setTrustedCertificatesBytes(data.buffer.asUint8List());
    client = HttpClient(context: securityContext);
    return client;
  };
}

///https验证
addHttps2(Dio dio) async {
  final file = "assets/certificate/star_idpbg_efoxconn_com.crt";
  (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
    SecurityContext securityContext = SecurityContext();
    //file is the path of certificate
    securityContext.setTrustedCertificates(file);
    client = HttpClient(context: securityContext);
    return client;
  };
}

///https验证
addHttps3(Dio dio) async {
  final pem = await rootBundle.loadString('assets/certificate/star_idpbg_efoxconn_com-nginx.pem');
  logs("pem1: $pem");
  (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
    client.badCertificateCallback = (X509Certificate cert, String host, int port) {
      // Verify the certificate
      logs("pem2: ${cert.pem}");
      if (cert.pem == pem) {
        logs("pem3 true");
        return true;
      } else {
        logs("pem4 false");
        return false;
      }
    };
    return client;
  };
}

///https验证-默认通过
addHttps4(Dio dio) async {
  (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
    client.badCertificateCallback = (X509Certificate cert, String host, int port) {
      return true;
    };
    return client;
  };
}

相关文章

  • 短信验证

    一、短信验证 验证方式有很多种:短信验证码,邮箱验证,语音验证,图片验证等等。其中短信验证,语音验证,邮箱验证都是...

  • thinkphp5.1

    一、验证器 官方文档:验证器官方文档:验证场景 验证器定义 数据验证 批量验证 抛出验证异常 自定义验证规则

  • 常用正则表达

    用户名验证: 电话号码验证: 邮箱验证: 密码验证 身份证验证: 昵称验证: 车牌号验证:

  • element表单验证

    一、普通验证、数字验证、手机号验证、邮箱验证:

  • Python Web框架 Django - 表单验证、路由反向解

    表单验证 逻辑处理,创建表单验证模块里的验证类,并将用户请求的POST对象,传入验证类进行验证,验证后获取验证通过...

  • go web接收参数的验证

    必填字段验证: 密码的正则验证 数字验证: 中文验证: 英文验证 电子邮箱验证: 手机号码验证: 身份证号码 十八...

  • tp框架验证器实现

    验证器 概述 ThinkPHP5.0验证使用独立的\think\Validate类或者验证器进行验证。 独立验证 ...

  • 2018-10-16 EasyUI 验证框

    关于 多个验证框动态绑定验证方式 easyui 电话验证 必填input 的验证

  • 2018-07-15-1

    另类验证helper 关联模型验证 部分字段取出验证 利用其它类做验证

  • IOS 手机号、电话号码、邮箱、网址、邮编的验证

    邮箱 手机号码验证 座机号码验证 URL验证 邮编验证

网友评论

      本文标题:3.2.flutter-https验证

      本文链接:https://www.haomeiwen.com/subject/urrqsdtx.html