如何查找用户的邮件 ID、姓名、密码是否已存在于 android 中?用于登录功能

问题描述

enter image description here

如何在登录功能中查找用户的邮件 ID、姓名、密码是否已存在。如果用户提供相同的名称、邮件、密码,我检查了它是否显示 400 个错误请求。那么现在如何在用户已经注册的吐司中显示它。不知道响应码和状态码是否相等 检查我的代码。

public class RegisterActivity extends AppCompatActivity {

    private static final String TAG = "Register Activity";
    private EditText registerFullName,registerEmailAddress,registerPhoneNumber,registerPassword,registerRePassword;
    private CheckBox signUpCheckBox;
    private static final Pattern PASSWORD_PATTERN =
            Pattern.compile("^" +
                    "(?=.*[0-9])" +         //at least 1 digit
                  //  "(?=.*[a-z])" +         //at least 1 lower case letter
                  //  "(?=.*[A-Z])" +         //at least 1 upper case letter
                    "(?=.*[a-zA-Z])" +      //any letter
                    "(?=.*[@#$%^&+=])" +    //at least 1 special character
                    "(?=\\S+$)" +           //no white spaces
                    ".{8,}" +               //at least 8 characters
                    "$");

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_register);
        // final String email;
        registerFullName = (EditText) findViewById(R.id.registerFullName);
        registerEmailAddress = (EditText) findViewById(R.id.registerEmailAddress);
        registerPhoneNumber = findViewById(R.id.registerPhoneNumber);
        registerPassword = (EditText) findViewById(R.id.registerPassword);
        registerRePassword = findViewById(R.id.registerRePassword);
        signUpCheckBox = findViewById(R.id.signUpCheckBox);
        TextView back2Login = (TextView) findViewById(R.id.registerBack2Login);
        ImageView registerBackBtn = (ImageView) findViewById(R.id.registerBackBtn);
        RelativeLayout relativeLayout = findViewById(R.id.signUplayout);
        relativeLayout.scheduleLayoutAnimation();
        registerPassword.setTransformationMethod(new PasswordTransformationMethod());
        registerRePassword.setTransformationMethod(new PasswordTransformationMethod());
        //  registerPassword.setTransformationMethod(new HideReturnsTransformationMethod());
        //    registerRePassword.setTransformationMethod(new HideReturnsTransformationMethod());
        registerBackBtn.setOnClickListener(v -> {
            Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);
            startActivity(intent);
            finish();
        });
        back2Login.setOnClickListener(v -> {
            Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);
            startActivity(intent);
            finish();
        });
    }
 private void Usersignup() {
        String email = registerEmailAddress.getText().toString().trim();
        String name = registerFullName.getText().toString().trim();
        String password = registerPassword.getText().toString().trim();

        if (registerFullName.getText().toString().trim().isEmpty()) {
            registerFullName.setError("Username is required");
            registerFullName.requestFocus();
            return;
        }else {
            registerFullName.setError(null);
        }
        if (registerPhoneNumber.getText().toString().trim().isEmpty()) {
            registerPhoneNumber.setError("Field Can't be Empty");
            registerFullName.requestFocus();
            return;
        }else{
            registerPhoneNumber.setError(null);
        }
        if (email.isEmpty()) {
            registerEmailAddress.setError("Email is required");
            registerEmailAddress.requestFocus();
            return;
        }else {
            registerEmailAddress.setError(null);
        }
        if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
            registerEmailAddress.setError("Invalid emailaddress");
            registerEmailAddress.requestFocus();
            return;
        }
        if (name.isEmpty()) {
            registerFullName.setError("Name is required");
            registerFullName.requestFocus();
            return;
        }else {
            registerFullName.setError(null);
        }
        if (password.isEmpty()) {
            registerPassword.setError("Enter the password");
            registerPassword.requestFocus();
            return;
        }else if(!PASSWORD_PATTERN.matcher(password).matches()){
            registerPassword.setError("Password should contain atleast 1 alphabet,1 special character,1 numeric value,and a total of 8 characters");
            return;
        } else {
            registerPassword.setError(null);
        }
        if (registerRePassword.getText().toString().trim().isEmpty()) {
            registerRePassword.setError("Field Can't be Empty");
            registerRePassword.requestFocus();
            return;
        }
        if (!registerRePassword.getText().toString().trim().equals(registerPassword.getText().toString().trim())) {
            registerRePassword.setError("Password Don't match. Please Match Again");
            registerRePassword.requestFocus();
            return;
        }else {
            registerRePassword.setError(null);
        }
        FoodVybeAPI foodVybeAPI = ApiClient.getRetrofit().create(FoodVybeAPI.class);
        foodVybeAPI.register(name,email,password).enqueue(new Callback<Userinfo>() {
            @Override
            public void onResponse(Call<Userinfo> call,Response<Userinfo> response) {
                if (response.code()==404) {
                    Toast.makeText(RegisterActivity.this,"An error occurred try again later",Toast.LENGTH_LONG).show();
                    Log.e(TAG,"onResponse: Not Successfull" + response.errorBody() + response.code());
                    return;
               // } else if (response.code()==400){
                   //  Toast.makeText(RegisterActivity.this,"Already Registered",Toast.LENGTH_LONG).show();
                }
                else {
                Toast.makeText(RegisterActivity.this,"Woo! You are registered now Just Verify Email and login here",Toast.LENGTH_LONG).show();
                Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);
                startActivity(intent);
                finish();}
            }
            @Override
            public void onFailure(Call<Userinfo> call,Throwable t) {
                Toast.makeText(RegisterActivity.this,t.getLocalizedMessage(),Toast.LENGTH_SHORT);
                Log.e(TAG,"onFailure: Failure" + t.getMessage());
            }
        });
    }

    public void registerSignUp(View view) {
        if (!signUpCheckBox.isChecked()) {
            Toast.makeText(this,"Please Accept Terms and Conditions",Toast.LENGTH_SHORT).show();
        } else {
            Usersignup();
        }
    }
}

Userinfo class:
public class Userinfo {
@SerializedName("userName")
        @Expose
    String userName;
    @SerializedName("email")
    @Expose
    String email;
    @SerializedName("password")
    @Expose
    String password;

    public Userinfo(String name,String email,String password) {
        name = userName;
        this.email = email;
        this.password = password;
    }

    public String getName() {
        return userName;
    }

    public void setName(String name) {
        this.userName = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}


Interface:
 @FormUrlEncoded
    @POST("user/login")
    Call<User> login(@Field("email") String email,@Field("password") String password);

    @FormUrlEncoded
    @POST("user/register")
    Call<Userinfo> register(
            @Field("userName") String userName,@Field("email") String email,@Field("password") String password);

解决方法

如果你想显示该用户已经存在。

  1. 只需要求您的后端开发人员添加状态和消息作为响应即可。
  2. 如果用户注册成功,则状态为成功,消息为“注册成功”
  3. 如果用户已存在,则状态将失败并且消息将是“用户已存在”。
,

只需像这样使用您的 UserInfo 类: 包com.example;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class UserInfo {

@SerializedName("userName")
@Expose
private String userName;
@SerializedName("email")
@Expose
private String email;
@SerializedName("password")
@Expose
private String password;
@SerializedName("error")
@Expose
private String error;
@SerializedName("message")
@Expose
private String message;
@SerializedName("status")
@Expose
private String status;

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getError() {
return error;
}

public void setError(String error) {
this.error = error;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

public String getStatus() {
return status;
}

public void setStatus(String status) {
this.status = status;
}

}

现在,如果您收到 400 状态代码,请向他显示来自 error 类的 statusUserInfo 消息 cz 现在您的 UserInfo 类包含状态、错误、消息信息,否则如果你得到 201 或 200 状态码,继续成功

if (response.code()==404) {
                    Toast.makeText(RegisterActivity.this,response.status.toString(),Toast.LENGTH_LONG).show();
                    Log.e(TAG,"onResponse: Not Successfull" + response.errorBody() + response.code());
                    return;
               } else if (response.code()==400){
UserInfo userInfo = response.body();
                   Toast.makeText(RegisterActivity.this,userInfo.status.toString(),Toast.LENGTH_LONG).show();
                }
                else {
                Toast.makeText(RegisterActivity.this,"Woo! You are registered now Just Verify Email and login here",Toast.LENGTH_LONG).show();
                Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);
                startActivity(intent);
                finish();}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...