Как аутентифицировать пользователя только один раз?

У меня есть приложение, которое требует проверки подлинности с сервера. Я должен использовать класс, который расширил класс Authenticator, чтобы устанавливать этот уровень кода каждый раз, когда я пытаюсь получить услугу с этого сервера.

Authenticator.setDefault (новый UserAuthenticator("my_mail", "my_password"));

и это класс UserAuthenticator:

import java.net.Authenticator;
import java.net.PasswordAuthentication;

import android.util.Log;
public class UserAuthenticator extends Authenticator
{
    //counter used to iterate login process
    private int redirect;
    private String email;
    private String password;

    /**
     * UserAuthenticator constructor
     */
    public UserAuthenticator(String mail, String pwd)
    {
        this.email = mail;
        this.password = pwd;
        Log.d("email+password", email+password);
    }

    /**
     * <p>Called when password authorization is needed</p>
     *
     */
    @Override
    protected PasswordAuthentication getPasswordAuthentication()
    {

        //to catch login redirect exception
        if(redirect>0){

            return null;
        }else{
            redirect ++;
        }

        /**
         * <p>Return the information (a data holder that is used by
         * Authenticator</p
         */ 
        return new PasswordAuthentication(email,
                password.toCharArray());
    }
    public PasswordAuthentication authenticationResult()
    {
        return getPasswordAuthentication();
    }

}

Есть ли способ создать экземпляр этого класса только один раз, чтобы затем использовать его (пользователь остается аутентифицированным) во всех остальных действиях.

Я имею в виду, что хочу аутентифицировать пользователя один раз и не повторять создание экземпляров этого класса каждый раз, когда мне нужно запросить сервер.

PS: я пытался сделать его статическим внутренним классом, но он не работает без его экземпляра каждый раз. Возможно, в Android есть другой путь, а не класс Authenticator, потому что я знал этот класс в веб-приложениях Java.

0 ответов

Другие вопросы по тегам