首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 短信驗證碼找回密碼:集成 Mob 短信驗證 SDK 快速實現

     編輯:程式設計綜合問答

業務流程

  1. 用戶輸入手機號 → 點擊「獲取驗證碼」。
  2. App 調用 SDK 發送請求 → 服務商下發短信。
  3. 用戶輸入驗證碼 → App 驗證通過 → 允許重置密碼。

推薦方案:Mob (ShareSDK) 短信驗證

官網:https://www.mob.com
優勢:免費額度大、接入簡單、支持國內/國際短信、有後台統計、無需自建短信通道。

Android 集成步驟

1. Gradle 依賴

dependencies {
    implementation 'com.mob.sdk:smssdk:3.+'
    // 或下載 AAR 放入 libs 目錄
}

2. AndroidManifest 權限與組件

<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- SDK 內部服務 -->
<service android:name="com.mob.smssdk.SMSSDKService"
         android:exported="false" />
<receiver android:name="com.mob.smssdk.SMSSDKReceiver"
          android:exported="true">
    <intent-filter>
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
</receiver>

3. 初始化 (Application/首頁 Activity)

SMSSDK.initSDK(this, "YOUR_APP_KEY", "YOUR_APP_SECRET");

4. 發送驗證碼

// 區號 86 為中國大陸
SMSSDK.getVerificationCode("86", phoneNumber);

5. 提交驗證碼驗證

SMSSDK.submitVerificationCode("86", phoneNumber, code, new SMSSDKHandler() {
    @Override public void onResult(int event, int result, Object data) {
        if (result == SMSSDK.RESULT_COMPLETE) {
            // 驗證成功,跳轉重置密碼頁
            startActivity(new Intent(this, ResetPwdActivity.class));
        } else {
            // 失敗提示
            Toast.makeText(this, "驗證碼錯誤", Toast.LENGTH_SHORT).show();
        }
    }
});

替代方案對比

方案優點缺點成本
Mob/極光/個推 短信 SDK接入快、免運維、有後台、合規通道依賴第三方、免費額度有限低 (按量付費)
阿里云/騰訊云/網易云信 短信 API大廠穩定、簽名模板自主、到達率高需自行實現倒計時/防刷/驗證邏輯中 (幾分/條)
自建短信網關 (SMPP/Modem)完全可控、無單價成本極高運維、需申請通道、合規風險大高

安全加固建議

  • **圖形驗證碼/滑塊** 前置,防機器人批量請求。
  • **頻率限制**:同一手機/同一 IP 分鐘/小時/天發送上限。
  • **驗證碼加密傳輸**:HTTPS + 簽名防篡改。
  • **後端二次驗證**:App 提交驗證碼後,服務端再調用 SDK 驗證接口,防客戶端繞過。

接入 Mob 等成熟 SDK,**半天可完成從 0 到可用**,是中小型 App 短信驗證的首選路徑。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved