一步一步谷歌SSO(java)?
我迷失在谷歌单一登录的所有打开的浏览器选项卡中:) 我已经有一个应用程序,我想把谷歌市场。而强制性的集成是Google SSO。我已经在Struts2和Spring上构建了应用程序 所以现在我需要一些说明如何进行集成。举个例子就好了。或者如何开始,使用哪种技术,最佳方法,任何类似的 另外,我是否必须使用Google App Engine进行SSO集成?老实说,我很困惑:) 编辑 我从这里开始:因为我使用Java,如果你看一下底部的入门,我想使用step2,但是链接已经失效了。从那以后我就被卡住了一步一步谷歌SSO(java)?,java,oauth-2.0,single-sign-on,Java,Oauth 2.0,Single Sign On,我迷失在谷歌单一登录的所有打开的浏览器选项卡中:) 我已经有一个应用程序,我想把谷歌市场。而强制性的集成是Google SSO。我已经在Struts2和Spring上构建了应用程序 所以现在我需要一些说明如何进行集成。举个例子就好了。或者如何开始,使用哪种技术,最佳方法,任何类似的 另外,我是否必须使用Google App Engine进行SSO集成?老实说,我很困惑:) 编辑 我从这里开始:因为我使用Java,如果你看一下底部的入门,我想使用step2,但是链接已经失效了。从那以后我就被卡住了
链接也已失效。您可以按照Google Apps Marketplace的Java教程进行操作,该教程解释了如何执行单点登录: 本教程还包括zip的下载链接,其中包含应用程序源代码和所有必需的库,包括步骤2: 以下是文档中断开链接的有效链接:
- 步骤2:
- openid4java:
- gdata java客户端:
https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/userinfo.profile+https://www.googleapis.com/auth/userinfo.email&state=%2Fprofile&response_type=code&client_id=&redirect_uri=
然后从重定向\u uri
获取参数,并构建请求主体以获取访问\u令牌
:
String code = request.getParameter("code");
String foros = "code="+code +
"&client_id=<YOUR_CLIENT_ID>" +
"&client_secret=<YOUR_CLIENT_SECRET>" +
"&redirect_uri="+getText("google.auth.redirect.uri") +
"&grant_type=authorization_code";
现在您有了访问令牌,现在可以访问Google API的all。例如,获取所有用户信息:
GetMethod getUserInfo = new GetMethod("https://www.googleapis.com/oauth2/v1/userinfo?access_token="+accessToken);
String googleId = null;
String email = null;
String name = null;
String firstName = null;
String lastName = null;
try {
client.executeMethod(getUserInfo);
String resp = getUserInfo.getResponseBodyAsString();
JSONParser jsonParser = new JSONParser();
Object obj = jsonParser.parse(resp);
JSONObject parsed = (JSONObject)obj;
googleId = (String) parsed.get("id");
email = (String) parsed.get("email");
name = (String) parsed.get("name");
firstName = (String) parsed.get("given_name");
lastName = (String) parsed.get("family_name");
} catch (IOException e) {
throw new RuntimeException(e);
} catch (ParseException e) {
throw new RuntimeException(e);
}
您现在可以保存这些数据并将其用于登录应用程序 你为什么不展示一下你迄今为止所做的努力,告诉我们你在哪里被卡住了?我已经让SSO与twitter和facebook合作,所以我很确定谷歌也应该一样容易。我也用facebook和Dropbox做过,那很容易。但我甚至找不到谷歌的起点。我只是糊涂了。我从这里开始:因为我使用Java,如果你看一下底部的入门,我想使用step2,但是链接已经失效了。从那以后我就被卡住了……我同意看那个文档很糟糕。@Trick:我相信你们在找这个
GetMethod getUserInfo = new GetMethod("https://www.googleapis.com/oauth2/v1/userinfo?access_token="+accessToken);
String googleId = null;
String email = null;
String name = null;
String firstName = null;
String lastName = null;
try {
client.executeMethod(getUserInfo);
String resp = getUserInfo.getResponseBodyAsString();
JSONParser jsonParser = new JSONParser();
Object obj = jsonParser.parse(resp);
JSONObject parsed = (JSONObject)obj;
googleId = (String) parsed.get("id");
email = (String) parsed.get("email");
name = (String) parsed.get("name");
firstName = (String) parsed.get("given_name");
lastName = (String) parsed.get("family_name");
} catch (IOException e) {
throw new RuntimeException(e);
} catch (ParseException e) {
throw new RuntimeException(e);
}