实现 Google 账号登陆流程(OpenID)
api 设计成不限 client 的 restful 接口。
client 直接面对 user。网站版本是由 javascript 驱动。
0、client 调用 api 检查 user 是否登陆。如果是否,显示登录按钮。如果是,直接返回 user 信息。
1、user 点击登录,client 调用 api,等待 api 反馈。
2、api 通知 google 准备登录。
3、google 返回给 api(2) XRDS 信息。
4、api 返回给 client(1) 来自于 google(3) 的 redirect 地址。
5、client 调转到 google。
6、google 登录成功,返回到 client(5)。
7、client 调用 api 传递 google(6) 的信息。
8、api 返回给 client(7) user 信息。