Аутентификация пользователя cо сменой пароля

Для выполнения аутентификации пользователя со сменой пароля на сервере мобильной платформы создайте приложение «AuthWithChangePassword», в котором используются методы фреймворка:

Имя метода Краткое описание
authWithChangePassword Метод выполняет смену пароля на новый.
auth Метод выполняет проверку работоспособности авторизации пользователя в целом.

Приложение «AuthWithChangePassword» состоит из одного экрана и кнопки:

Для просмотра результата работы приложения используйте интерактивный пример:

Нажмите кнопку «authWithChangePassword».

package ru.authWithChangePassword.app2;
 
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
 
import com.mobrun.plugin.api.HyperHive;
import com.mobrun.plugin.api.HyperHiveState;
import com.mobrun.plugin.api.VersionAPI;
import com.mobrun.plugin.models.BaseStatus;
 
public class PasswordChangeActivity extends AppCompatActivity {
    private static final String TAG = PasswordChangeActivity.class.getSimpleName();
    private static final String URL = "https://testmasterfmp.fsight.cloud/";
    private static final VersionAPI API_VERSION = VersionAPI.V_1;
    private static final String ENVIRONMENT = "android_test";
    private static final String PROJECT = "instrumented_test";
    private static final String PROJECT_VERSION = "v1";
    private static final String LOGIN = "android";
    private static final String PASSWORD = "betterthanios";
 
    private HyperHive hyperHive;
    private Handler uiHandler;
    private Button btn;
    private TextView txt;
 
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_password_change);
        uiHandler = new Handler();
        hyperHive = new HyperHiveState(getApplicationContext())
            .setHostWithSchema(URL)
            .setApiVersion(API_VERSION)
            .setEnvironmentSlug(ENVIRONMENT)
            .setProjectSlug(PROJECT)
            .setVersionProject(PROJECT_VERSION)
            .setHandler(uiHandler)
            .buildHyperHive();
        auth();
        btn = ((Button) findViewById(R.id.activity_password_change_btn));
        txt = ((TextView) findViewById(R.id.activity_password_change_txt));
        btn.setOnClickListener((v) -> authWithChangePassword());
    }
 
    private void authWithChangePassword() {
        Log.d(TAG, "authWithChangePassword()");
        final String tmp_password = "123123";
        // Изменим пароль на временный
        BaseStatus status_change = hyperHive.authAPI.authWithChangePassword(
            LOGIN,
            PASSWORD,
            tmp_password,
            tmp_password,
            true
        ).execute();
        // Выполним авторизацию с новым паролем
        BaseStatus status_check_change = hyperHive.authAPI.auth(
            LOGIN,
            tmp_password,
            true
        ).execute();
        // Получим старый пароль
        BaseStatus status_change_back = hyperHive.authAPI.authWithChangePassword(
            LOGIN,
            tmp_password,
            PASSWORD,
            PASSWORD,
            true
        ).execute();
        // Выполним авторизацию со старым паролем
        BaseStatus status_check_change_back = hyperHive.authAPI.auth(
            LOGIN,
            PASSWORD,
            true
        ).execute();
        String result =
              "password change: "      + status_change.isOk() + '\n'
            + "normal auth: "          + status_check_change.isOk() + '\n'
            + "password change back: " + status_change_back.isOk() + '\n'
            + "normal auth: "          + status_check_change_back.isOk();
        txt.setText(result);
        Log.d(TAG, "authWithChangeStatus() result: " + result);
    }
 
    private void auth() {
        Toast.makeText(this, "auth: " + hyperHive.authAPI
            .auth(LOGIN, PASSWORD, true).execute().isOk(), Toast.LENGTH_LONG).show();
    }
}

См. также:

Примеры аутентификации на сервере мобильной платформы | Аутентификация пользователя по логину и паролю