示例 Java 代码
// Create a state token to prevent request forgery.
// Store it in the session for later validation.
String state = new BigInteger(130, new SecureRandom()).toString(32);
request.session().attribute("state", state);
// Read index.html into memory, and set the Client ID,
// Token State, and Application Name in the HTML before serving it.
return new Scanner(new File("index.html"), "UTF-8")
.useDelimiter("\\A").next()
.replaceAll("[{]{2}\\s*CLIENT_ID\\s*[}]{2}", CLIENT_ID)
.replaceAll("[{]{2}\\s*STATE\\s*[}]{2}", state)
.replaceAll("[{]{2}\\s*APPLICATION_NAME\\s*[}]{2}",
APPLICATION_NAME);
它在 Java 中可用,就流程而言,为了这个答案的完整性,我想简要概述一下。
- 用户点击“使用 Google 登录”
- 由于使用了 javascript,用户被重定向到某个 google 页面,在该页面中要求用户获得许可。
- 在接受或授予权限时,Google 会将用户(根据应用程序的请求发送接受/不接受的响应以及其他与用户相关的数据)重定向到在注册应用程序时指定的某个预先确定的 URL。
- 然后那个url处理程序(servlet/jsp)进一步负责获取google响应请求的数据并将其保存在数据库中
希望这样可以清楚地解释。您可以在 LRA 的问题评论中提到的链接中轻松找到更多信息。