Skip to main content

my.bioMetrics.createSignature

bioMetrics.createSignature

my.bioMetrics.createSignature là API tạo ra chuỗi signature từ challenge. Tham khảo full luồng xác thực người dùng bằng biometrics

Luồng authentication sử dụng biometrics

  • Device sẽ bật chế độ xác thực bằng biometrics để lấy ra private key đã lưu trữ
  • Nếu xác thực thành công, private key này sẽ dùng để encrypt challenge để tạo ra 1 chuỗi RSA PKCS#1v1.5 SHA 256 gọi là signature.
  • Phía Tiniapp, sau khi có signature này, client gửi signature lên cho server để verify.
  • Phía server của Tiniapp, nhận được response từ client, dùng public key để verify response và trả về kết quả authentication cho client

Khả dụng: Hỗ trợ từ version 1.96.7 trở lên.

Lưu ý:

  • Việc tạo ra signature đòi hỏi phải có cặp private/public key được tạo ra trước đó bằng JSAPI my.bioMetrics.createKey

Quét mã để trải nghiệm

Xem code mẫu trên Tini Studio

Demo

Trải nghiệm thử với trình giả lập bên dưới

API Params

Thuộc tínhKiểu dữ liệuBắt buộcMô tả
challengeStringChallenge mà server gửi về cho client hoặc chuỗi data mà client muốn gửi lên server để verify
contentStringContent của popup hiện ra khi xác thực bằng biometrics
successFunctionCallback function khi việc tạo signature thành công
failFunctionCallback function khi việc tạo signature thất bại
completeFunctionCallback function bất kể thành công hay thất bại

Giá trị trong success callback

Khi việc gọi API thành công, framework sẽ trả về payload chứa các thông tin sau

Thuộc tínhKiểu dữ liệuMô tả
signatureStringSignature được sinh ra

Sample Code

index.xml
<view>
<block-header title="Usage" description="Use Biometrics to authenticate with server" />
<view class="block-content">
<view class="page-section-btns">
<button type="primary" onTap="createKey">Create Key Pair</button>
<button type="primary" onTap="keyExists">Check Key Exists</button>
<button type="primary" onTap="deleteKey">Delete Key</button>
</view>
</view>
<view class="block-content">
<view class="page-section-btns">
<button type="primary" onTap="createSignature">Generate Signature</button>
</view>
</view>
</view>
index.js
Page({
data: {
username: 'test@gmail.com',
password: 'test'
},
createSignature() {
const payload = `${new Date().getTime()}-${
this.data.username
}/${this.data.password}`;
my.bioMetrics.createSignature({
content: 'Login using Biometrics',
challenge: payload,
success: (res) => {
my.alert({
title: 'Success',
content: JSON.stringify(res)
});
},
fail: (res) => {
my.alert({ title: 'Fail', content: JSON.stringify(res) });
}
});
}
});