Nativescript SSL固定问题

时间:2018-08-22 03:11:28

标签: nativescript angular2-nativescript

我必须在我的应用中启用ssl固定。因此,我不得不使用https://github.com/go-sql-driver/mysql/blob/master/dsn.go#L35插件。 我已经正确执行了实施步骤。但是当我发出https请求时,iOS应用在AFNetworking EXC_BAD_Access错误中崩溃

https://github.com/gethuman/nativescript-https

Android应用程序出现此错误

JS: nativescript-https > Disabled SSL pinning by default
JS: nativescript-https > enableSSLPinning error ReferenceError: okhttp3 is not defined
JS: Https.request error ReferenceError: okhttp3 is not defined

证书文件夹 enter image description here

reference.d.ts

/// <reference path="./node_modules/tns-core-modules/tns-core-modules.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/ios.d.ts" />

进口

import { File, Folder, knownFolders, path } from 'file-system'
import * as Https from 'nativescript-https'

在构造函数中

let dir = knownFolders.currentApp().getFolder('certs')
let certificate = dir.getFile('httpbin.org.cer').path
Https.enableSSLPinning({ host: 'httpbin.org', certificate: certificate});

方法

clickLogin(){
        Https.request({
            url: 'https://httpbin.org/get',
            method: 'GET',
            headers: {
                'content-type': 'application/json'
            },
        }).then(function(response) {
            console.log('Https.request response', response)
        }).catch(function(error) {
            console.error('Https.request error', error)
        })
}

请帮助我确定此处的问题。

tns版本4.0.1 节点v6.11.5

1 个答案:

答案 0 :(得分:0)

Android:删除并重新添加android平台。干净的版本解决问题 iOS:降级到Afnetworking 3.1.0解决了该问题