我已经用GWT实现了一个适用于Google和Yahoo的OpenId身份验证服务。两个平台的用户都可以使用他们的帐户登录我的网站,我们可以检索一些基本信息(电子邮件地址)。这是我的一段代码。
private static final Map<String, String> openIdProviders;
static {
openIdProviders = new HashMap<String, String>();
openIdProviders.put("Google", "https://www.google.com/accounts/o8/id");
openIdProviders.put("Yahoo", "http://open.login.yahooapis.com/openid20/www.yahoo.com/xrds");
}
userInfo.isSignedIn = false;
for (String providerName : openIdProviders.keySet()) {
String providerUrl = openIdProviders.get(providerName);
String loginUrl = userService.createLoginURL(action.getRequestURI(), null, providerUrl, new HashSet<String>());
userInfo.signInURLs.put(providerName, loginUrl);
}
我怎么能为Facebook和Twitter做同样的事情?他们似乎不是openId提供者,对吧?堆栈溢出似乎是为登录而实现的。
感谢
我使用Scribe Java实现了FB
和Twitter
登录。
Facebook通过OAuth 2.0进行身份验证。存在客户端和服务器端身份验证的示例。Twitter也是如此。
在客户端,GWT JS Overlay Types将帮助您包装需要进行的JS调用。