標籤:

實人認證使用

實人認證使用

因為業務中安全考慮,需要驗證是否本人在使用app。

我們採用的方案實人認證。

概念

實人認證做的事情是人是真實的。比如你叫張三,那麼就是要證明你就是張三。

如何證明

1)實名校驗。其實就是驗證身份證是真是假。

2)生物識別。其實就是把你臉拍成照片和身份證照片比對,確認是否是本人。

示意圖

如何實現

我們採用了阿里雲的實人認證服務。

1)手機端拍下身份證傳給後端,後端校驗真偽。

2)手機端人臉認證傳遞給後端,後端和身份證比對,確認是否一致。

採用 無線SDK+服務端接入架構

後端代碼

//創建DefaultAcsClient實例並初始化DefaultProfile profile = DefaultProfile.getProfile( "cn-hangzhou", //默認 "YourAccessKeyID", //您的Access Key ID "YourAccessKeySecret"); //您的Access Key SecretIAcsClient client = new DefaultAcsClient(profile);String biz = "YourRPBasicBiz"; //您在控制台上創建的、採用RPBasic認證方案的認證場景標識, 創建方法:https://help.aliyun.com/document_detail/59975.htmlString ticketId = UUID.randomUUID().toString(); //認證ID, 由使用方指定, 發起不同的認證任務需要更換不同的認證IDString token = null; //認證token, 表達一次認證會話int statusCode = -1; //-1 未認證, 0 認證中, 1 認證通過, 2 認證不通過//1. 服務端發起認證請求, 獲取到token//GetVerifyToken介面文檔:https://help.aliyun.com/document_detail/57050.htmlGetVerifyTokenRequest getVerifyTokenRequest = new GetVerifyTokenRequest();getVerifyTokenRequest.setBiz(biz);getVerifyTokenRequest.setTicketId(ticketId);try { GetVerifyTokenResponse response = client.getAcsResponse(getVerifyTokenRequest); token = response.getData().getVerifyToken().getToken(); //token默認30分鐘時效,每次發起認證時都必須實時獲取} catch (ServerException e) { e.printStackTrace();} catch (ClientException e) { e.printStackTrace();}//2. 服務端將token傳遞給無線客戶端//3. 無線客戶端用token調起無線認證SDK//4. 用戶按照由無線認證SDK組織的認證流程頁面的指引,提交認證資料//5. 認證流程結束退出無線認證SDK,進入客戶端回調函數//6. 服務端查詢認證狀態(客戶端回調中也會攜帶認證狀態, 但建議以服務端調介面確認的為準)//GetStatus介面文檔:https://help.aliyun.com/document_detail/57049.htmlGetStatusRequest getStatusRequest = new GetStatusRequest();getStatusRequest.setBiz(biz);getStatusRequest.setTicketId(ticketId);try { GetStatusResponse response = client.getAcsResponse(getStatusRequest); statusCode = response.getData().getStatusCode();} catch (ServerException e) { e.printStackTrace();} catch (ClientException e) { e.printStackTrace();}//7. 服務端獲取認證資料//GetMaterials介面文檔:https://help.aliyun.com/document_detail/57641.htmlGetMaterialsRequest getMaterialsRequest = new GetMaterialsRequest();getMaterialsRequest.setBiz(biz);getMaterialsRequest.setTicketId(ticketId);if( 1 == statusCode || 2 == statusCode ) { //認證通過or認證不通過 try { GetMaterialsResponse response = client.getAcsResponse(getMaterialsRequest); //後續業務處理 } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); }}

參考:

什麼是實人認證_產品簡介_實人認證-阿里雲

實人認證_身份認證系統_身份驗證平台_人臉識別技術 - 阿里雲


推薦閱讀:

CVPR 2018 Best Paper Taskonomy 作者解讀
《Learning Video Object Segmentation with Visual Memory》論文筆記
【小林的OpenCV基礎課 10】Canny邊緣檢測
深度學習的可解釋性研究(二)——不如打開箱子看一看
[CVPR2018筆記]Deep Layer Aggregation

TAG:計算機視覺 |