Для выполнения аутентификации пользователя со сменой пароля на сервере мобильной платформы создайте приложение «AuthWithChangePassword», в котором используются методы фреймворка:
Имя метода | Краткое описание |
authWithChangePassword | Метод выполняет смену пароля на новый. |
auth | Метод выполняет проверку работоспособности авторизации пользователя в целом. |
Приложение «AuthWithChangePassword» состоит из одного экрана и кнопки:
«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();
}
}
См. также:
Примеры аутентификации на сервере мобильной платформы | Аутентификация пользователя по логину и паролю