如何显示预先填写在Google OAuth登录表单中的电子邮件

时间:2018-11-03 08:15:31

标签: wso2 google-oauth wso2is

我正在使用WSO2作为身份服务器,并使用Google Authenticator作为身份提供者。登录工作正常。在我的Web应用程序上,我要求用户输入他的电子邮件,然后显示google登录表单。我想显示此电子邮件以预填此表格。谢谢。

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以做到。为此,您需要自定义OpenIDConnectAuthenticator.java以将login_hint传递给Google。

建议您在服务器中检出org.wso2.carbon.identity.application.authenticator.oidc版本(您可以在IS_HOME / repository / components / dropins /中找到它)

  • 在OpenIDConnectAuthenticator.java中的setTimeout之前添加这些行

    response.sendRedirect(loginPage);

这些行将从身份验证发起请求中获取用户名,并将其作为login_hint发送给google。

  • 使用以下命令构建组件。

String[] usernames = context.getAuthenticationRequest().getRequestQueryParam("username"); if (usernames != null && usernames.length > 0) { loginPage = loginPage + "&login_hint=" + usernames[0]; }

这将在目标文件夹中创建org.wso2.carbon.identity.application.authenticator.oidc-5.1.17.jar。

  • 在IS_HOME / repository / components / dropins文件夹中替换现有的org.wso2.carbon.identity.application.authenticator.oidc-.jar。
  • 重新启动IS服务器
  • 向IS发送身份验证请求时,将mvn clean install附加为url参数

例如, username=senthalank@gmail.com