Вход в Google Oauth 2.0 работает только на моем ноутбуке, а не на ноутбуке моего партнера. Как я могу это исправить? - PullRequest
1 голос
/ 15 марта 2020

Итак, я реализовал Google Oauth 2.0 для приложения Android для группового проекта. Я могу войти, используя свою учетную запись Google, но мой партнер не может войти с помощью своей учетной записи Google. Когда я вхожу в систему, происходит переход к новому действию, в котором отображаются мое имя, адрес электронной почты и фотография профиля на основе данных моей учетной записи Google. Аккаунт Google объявлен как глобальная переменная в классе sharedVars. Когда мой партнер пытается войти в систему, приложение либо вылетает, либо останавливается при первом действии.

Они вытягивают его из Github, и у меня есть настройка токенов Oauth, которая работает для меня, но не для моего партнера. Я попытался добавить их SHA-1, но это также не работает. Мне было интересно, что, возможно, мне нужно куда-нибудь добавить секретный файл JSON клиента в проект, но я не уверен, куда я его положу.

Моя основная деятельность

public class MainActivity extends AppCompatActivity implements View.OnClickListener, GoogleApiClient.OnConnectionFailedListener {

    private LinearLayout profileSection;
    private Button signOut;
    private Button passProf;
    private SignInButton signIn;
    private TextView Name,Email;
    private ImageView profilePic;
    private GoogleApiClient googleApiClient;
    private static final int REQ_CODE = 9001;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        GoogleSignInOptions signInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build();
        googleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this,this).addApi(Auth.GOOGLE_SIGN_IN_API,signInOptions).build();

    }

    @Override
    public void onClick(View v) {
        switch(v.getId())
        {
            case R.id.sign_in_button:
                signIn();
                break;

        }
    }

    @Override
    public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {


    }

    private void signIn()
    {
        Intent intent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
        startActivityForResult(intent,REQ_CODE);



    }


    private void handleResult(GoogleSignInResult result)
    {
        if(result.isSuccess())
        {

            ((sharedVars)this.getApplication()).setGoogleAccount(result.getSignInAccount());

            Intent showGoogleInfo = new Intent(getApplicationContext(),GoogleInfo.class);
            startActivity(showGoogleInfo);

        }

    }



    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode == REQ_CODE)
        {
            GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
            handleResult(result);
        }
    }
}

Показать активность профиля

public class GoogleInfo extends AppCompatActivity implements View.OnClickListener  {
    private LinearLayout profileSection;
    private Button signOut;
    private Button passProf;
    private SignInButton signIn;
    private TextView Name,Email;
    private ImageView profilePic;
    private GoogleApiClient googleApiClient;
    private static final int REQ_CODE = 9001;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.google_info);

        Name = (TextView)findViewById(R.id.nameDisplay);
        Email = (TextView)findViewById(R.id.emailDisplay);
        profilePic = (ImageView)findViewById(R.id.prof_pic);
        signOut = (Button)findViewById(R.id.bn_signOut);
        passProf = (Button)findViewById(R.id.passProf);

        signOut.setOnClickListener(this);
        passProf.setOnClickListener(this);


        Name.setText(((sharedVars) this.getApplication()).name);
        Email.setText(((sharedVars) this.getApplication()).email);
        Glide.with(this).load(((sharedVars) this.getApplication()).imgURL).into(profilePic);

    }

    @Override
    public void onClick(View v) {
        switch(v.getId())
        {
            case R.id.bn_signOut:
                signOut();
                break;
            case R.id.passProf:
                Intent intent1 = new Intent(getApplicationContext(), PassengerProfile.class);
                startActivity(intent1);
                break;
        }
    }

    private void signOut()
    {
        Auth.GoogleSignInApi.signOut(googleApiClient).setResultCallback(new ResultCallback<Status>() {
            @Override
            public void onResult(@NonNull Status status) {

            }
        });

        Intent signOut = new Intent(getApplicationContext(),MainActivity.class);
        startActivity(signOut);
    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...