我正在使用WSO2作为身份服务器,并使用Google Authenticator作为身份提供者。登录工作正常。在我的Web应用程序上,我要求用户输入他的电子邮件,然后显示google登录表单。我想显示此电子邮件以预填此表格。谢谢。
答案 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。
mvn clean install
附加为url参数例如,
username=senthalank@gmail.com