滑動驗證Android/iOS使用說明__使用手冊_數據風控-阿裏雲
滑動驗證,通過生物特征判定操作計算機的是人還是機器,從而取代傳統驗證方式。Android、iOS端滑動驗證組件展現形式:
Android/iOS:
係統間交互流程
1.啟動滑動驗證:用戶APP調用風控SDK啟動風險驗證。用戶在頁麵操作滑動驗證:
- 正常用戶:滑動直接通過;
- 有風險用戶:滑動後失敗,直接返回初始頁麵,提示重新滑動;
2.提交業務請求:用戶提交業務請求如注冊、登陸請求時,需要將驗證碼參數傳遞給服務端,驗證碼參數包含:
- session_id:驗證會話id
3.校驗驗證結果:用戶服務端調用驗證碼服務api,獲得校驗結果。該步驟需要放在業務請求處理之前。
4.校驗結果處理:根據返回的校驗結果,進行處理。對於不同校驗結果,建議處理方案:
- 校驗成功:繼續做業務請求處理,如注冊、登陸處理;
- 校驗失敗:建議直接返回業務請求失敗,讓操作者重新再來一次。
接入流程
1.第一步,進入數據風控控製台:
- 未開通服務,開通服務;
- 已開通服務,進入服務管理,選擇滑動驗證服務,點擊【創建】:
2.第二步,選擇應用類型(Android、iOS)、使用場景、輸入高峰期PV,點擊【下一步】:
3.第三步,根據係統集成代碼的操作步驟,下載SDK,集成到APP中;服務端調用對應api,詳細操作參見下方:係統集成。集成完成,點擊【下一步】:
4.第四步,係統集成完畢,發布對應的服務:
係統集成
Android SDK集成配置
1.生成SDK
出於對應用數據安全考慮,數據風控生成的SDK會與應用強綁定。如果此前使用Debug版應用 生成SDK需要在應用發布前使用Release版應用重新上傳,並替換原有SDK。
- 上傳Release版APK;
- 點擊“生成SDK”按鈕,生成SDK;
- 生成完SDK後,SDK自動下載到本地;
2.導入SDK
2.1 導入前準備
數據風控SDK在阿裏巴巴的很多開放的SDK中也有包含,如果你的APK中同時引入了這些SDK,則在集成聚安全SDK之前需要將這些SDK(TAE,支付寶等)中包含的安全組件(.jar、.aar文件)、圖片文件(YW_1222.JPG)全部刪除掉。
2.2 導入SDK
根據使用方式導入SDK,AndroidStudio使用aar方式導入,Eclipse使用jar和so方式導入;
- 導入aar,如圖把所有的aar都複製到項目的libs目錄下,然後在該Module的build.gradle中增加如圖配置:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.+'
compile name: 'NoCaptchaSDK-external-release-5.1.17', ext: 'aar'
compile name: 'SecurityBodySDK-external-release-5.1.25', ext: 'aar'
compile name: 'SecurityGuardSDK-external-release-5.1.81', ext: 'aar'
compile name: 'verificationsdklib', ext: 'aar'
}
- 導入jar包和so,如圖把SDK中的所有的jar包和so文件都複製到工程的libs目錄下:
注意:
a.目前隻提供兩種架構下的so文件,armeabi是針對arm架構編譯的包,x86是針對x86架構編譯的包。應用程序在不同cpu架構的機型裏會選擇相應的so文件加載。
b.如果libs下有armeabi-v7a文件夾的話,需要將armeabi中對應的so複製一份到armeabi-v7a文件夾下。
c.如果libs下有arm64-v8a或x86_64文件夾的話,需要將arm64-v8a文件夾刪除掉。
d.如果在想在x86或者模擬器上運行你的程序,必須導入x86架構的so,但是可以在應用發布時去掉x86目錄下的so。
e.最後目錄顯示如下:NoCaptchaSDK-5.1.16.jar
armeabi
SecurityBodySDK-5.1.19.jar
verificationsdklib.aar
SecurityGuardSDK-5.1.58.jar
x86
3.導入圖片
3.1 解壓第1點中生成的SDK,獲得文件:yw1222.jpg;
3.2 把這個文件導入到工程中resdrawable目錄下,如果沒有這個文件夾,請先創建,如下圖:
左圖為AndroidStudio中安全加密圖片位置,右圖為Eclipse中安全加密圖片位置;
3.3 如果開啟混淆要檢查發布包335大小不為0, shrinkResources true會導致yw_1222_0335以及yw_1222圖片為0
release {
minifyEnabled true // 是否混淆
shrinkResources true // <<<會導致335或者122圖片為0
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
解決方案一
放棄資源壓縮
解決方案二
參考google 關於shrink resource
新建 res/raw/keep.xml後加入如下內容:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="https://schemas.android.com/tools"
tools:keep="@drawable/yw_1222_0335, @drawable/yw_1222"/>
- 保留文件規則簡單介紹,資源文件相對路徑加上圖片文件名(不需要擴展名);
- 執行 ./gradlew clean assembleRelease –info|grep “Skipped unused resource” 觀察是否安全圖片給壓縮,同時檢查解壓縮後文件是否為0。
4.android studio修改項目文件
4.1 修改應用的工程根目錄build.gradle文件:
allprojects {
repositories {
jcenter()
flatDir { //<------添加三行
dirs 'libs' //<------
} //<------
}
}
4.2 修改application子工程的build.gradle文件
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile(name:'verificationsdklib', ext:'aar')
}
4.3 修改application子工程的build.gradle文件,增加jnilib
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
4.4 AndroidManifest.xml 加入驗證SDK入口Activity聲明
<activity android:name="com.alibaba.verificationsdk.ui.VerifyActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar"
android:windowSoftInputMode="adjustResize" >
</activity>
5.Eclispe修改項目文件5.1 添加權限信息
- 如果是AndroidStudio項目,則不需要在項目中額外配置權限,因為在aar中我們自己已經聲明了權限;
- 如果是Eclipse項目,需要在AndroidManifest.xml文件中添加下列權限配置:
5.2 AndroidManifest.xml 加入驗證SDK入口Activity聲明<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<activity android:name="com.alibaba.verificationsdk.ui.VerifyActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar"
android:windowSoftInputMode="adjustResize" >
</activity>
6.關於混淆
如果設置資源壓縮 shrinkResources true,參考導入圖片的處理,防止安全圖片被壓縮為0字節,配置proguard-rules.pro:
-keep class com.taobao.securityjni.**{*;}
-keep class com.taobao.wireless.security.**{*;}
-keep class com.ut.secbody.**{*;}
-keep class com.taobao.dp.**{*;}
-keep class com.alibaba.wireless.security.**{*;}
-keep class com.alibaba.verificationsdk.**{*;}
-keep interface com.alibaba.verificationsdk.ui.IActivityCallback
7.SDK API
7.1 SDK初始化:
- 初始化負責完成整個數據風控安全組件的全局初始化。初始化是線程安全的,初始化調用隻需要進行一次,無需重複調用;
- 接口詳情:
7.2 啟動風險驗證
- 使用場景:在需要使用驗證碼的場景,如注冊、登陸、活動頁麵,可以直接啟動驗證碼進行驗證;
- 接口詳情:
iOS SDK集成配置
1.生成SDK
出於對應用數據安全考慮,數據風控生成的SDK會與應用強綁定。如果此前使用Debug版應用 生成SDK需要在應用發布前使用Release版應用重新上傳,並替換原有SDK。
- 上傳Release版ipa;
- 點擊“生成SDK”按鈕,生成SDK;
- 生成完SDK後,SDK自動下載到本地;
2.導入SDK
2.1 導入Framework
a. 把SDK中的framework文件添加到項目目錄中
MSAuthSDK.framework SecurityGuardSDK.framework SGMain.framework``SGNoCaptcha.framework``SGSecurityBody.framework
b. 將MSADefaultImages.bundle和MSADefaultLocale.bundle加入資源中
c. 如果sdk中帶有xib,需要將所有xib加入資源中
2.2 導入圖片
a. 解壓第1點中生成的SDK,獲得文件:yw1222 *.jpg;
b. 把這個文件導入到項目目錄下,如下圖:
2.3 依賴 CocoaPods:
不使用pod可以直接使用sdk內壓縮包:
pod 'SVProgressHUD', '~> 1.1'
pod 'SSZipArchive', '~> 1.1'
2.4 添加係統依賴庫
在項目中添加其他依賴的framework,如下圖:
2.5 其他項目配置
- 在Build Setting中的Other Linker Flags中添加“-ObjC”選項,如下圖:
- 在info.plist中設置,開放http請求:
3.SDK API<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
3.1 SDK初始化: - 初始化負責完成整個數據風控安全組件的全局初始化。初始化是線程安全的,初始化調用隻需要進行一次,無需重複調用;
- 接口詳情:
3.2 啟動風險驗證
- 使用場景:在需要使用驗證碼的場景,如注冊、登陸、活動頁麵,可以直接啟動驗證碼進行驗證;
- 接口詳情:
服務端API調用
- 下載對應語言的SDK;
- 將SDK加載到工程中;
- 參考下方的代碼,開發第一步頁麵請求的處理類(如java的Action,Controller,Servlet等);注意填入自己的阿裏雲accesskey和secret;
- 參考示例代碼,對運行結果進行處理;請注意對服務端出現的錯誤進行兼容處理。
最後更新:2016-11-23 16:04:20
上一篇:
滑動驗證WEB/HTML5使用說明__使用手冊_數據風控-阿裏雲
下一篇:
滑動驗證插件__使用手冊_數據風控-阿裏雲
EcsInstance__數據類型_API參考_E-MapReduce-阿裏雲
對象存儲(OSS、七牛等)數據遷移NAS工具__數據遷移工具_常用工具_文件存儲-阿裏雲
問題解答__常見問題_Eclipse 插件-阿裏雲
創建分區__數據庫開發_用戶指南(RDBMS)_數據管理-阿裏雲
修改連接串__實例管理_API 參考_雲數據庫 RDS 版-阿裏雲
文件概覽__管理文件_控製台用戶指南_對象存儲 OSS-阿裏雲
阿裏雲異構計算產品家族亮相,覆蓋AI全場景和高性能計算需求
解除簽名密鑰與API的綁定__後端簽名密鑰相關接口_API_API 網關-阿裏雲
如何添加RDS IP白名單__常見問題_產品使用問題_數據集成-阿裏雲
不同企業之間的資源操作與授權管理__使用場景_用戶指南_訪問控製-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲