如何使用适用于托管域的Android登录Google

时间:2019-02-12 01:24:38

标签: android google-signin

设置the Hosted Domain参数时,我无法使用Android的Google登录。设置后,对用户可以登录的域没有任何限制,这与文档相矛盾。

我期望在request_uri上设置HD参数时,Google在浏览器上会执行什么操作,这将登录限制在该域中,但我只能获得允许所有帐户的通用登录流程。

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

    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .setHostedDomain("example.com")
            .requestIdToken("WEB_CLIENT_ID.apps.googleusercontent.com")
            .requestEmail()
            .build();

    // Build a GoogleSignInClient with the options specified by gso.
    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

    GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);

    findViewById(R.id.sign_in_button).setOnClickListener(this);
}

@Override
public void onClick(View v) {
    Intent signInIntent = mGoogleSignInClient.getSignInIntent();
    startActivityForResult(signInIntent, RC_SIGN_IN);
}

注意:我并不是在寻找解决此问题的方法,例如在签名后检查域,因为我们正试图解决此问题,因为用户体验方面的投诉。

1 个答案:

答案 0 :(得分:0)

要为特定域启用登录,您必须在https://console.cloud.google.com/apis/credentials上配置项目

根据我的经验,据我所知,setHostedDomain(“ example.com”)选项不会限制登录屏幕上的电子邮件输入,只会通过向您显示已注册该域的电子邮件地址来进行限制在设备上。