如何从api验证otp

问题描述 投票:-1回答:1

我正在基于OTP进行注册,如何验证我的OTP编号,请提供帮助。这是2个脚本1是验证活动2是一个运行正常的HTTP任务的异步任务3还有一项活动,该活动需要一个用户电话号码并发送OTP SMS工作正常

我只想检查我的编辑文本上的OTP是否与收到的消息用户匹配

package com.example.test2;

import android.content.Intent;
import android.os.AsyncTask;
import android.widget.Toast;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;

import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

class Verifyotp extends AsyncTask<String, Void, Void> {

    public static String string;
    @Override
    protected Void doInBackground(String... strings) {

        OkHttpClient client = new OkHttpClient().newBuilder()
                .build();
        MediaType mediaType = MediaType.parse("text/plain");
        RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
                .addFormDataPart("mobile_no", MainActivity.phoneNo)
                .addFormDataPart("otp", OTP_activity.OTP)
                .build();
        Request request = new Request.Builder()
                .url("http://127.0.0.1:8000/api/verifyotp")
                .method("POST", body)
                .addHeader("Accept", "application/json")
                .build();
        try {
            Response response = client.newCall(request).execute();
            string = response.body().string();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }
}
package com.example.test2;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.util.Objects;

public class OTP_activity extends AppCompatActivity {

    public static String OTP;
    TextView mssg;
    EditText ED;
    Button ver;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_otp_activity);

        mssg = (TextView) findViewById(R.id.txtmssg);
        ver = (Button) findViewById(R.id.verify);
        ED = (EditText)findViewById(R.id.otp);


        mssg.setText("We have sent you an SMS on " + MainActivity.phoneNo + " with 4 digit verification code.");
        ver.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                OTP = ED.getText().toString();
                  Verifyotp chk= new Verifyotp();
                  chk.execute();
                 int i = Verifyotp.string.length();
              if (i < 20){

                  Toast.makeText(getApplicationContext(),
                          "please try again.", Toast.LENGTH_LONG).show();
              }
              else {
                  Intent in = new Intent(OTP_activity.this, Home_Acivity.class);
                  startActivity(in);
              }

            }
        });

    }

}
任何帮助表示赞赏
android
1个回答
0
投票

您可以为此使用Firebase OTP身份验证。

© www.soinside.com 2019 - 2024. All rights reserved.