console
https://console.developers.google.com
申请service acount 后(凭据 -> OAuth 2.0 客户端 ID -> 编辑),要注意添加,否则后面的 web sdk 初始时会报错
- 已获授权的 JavaScript 来源
- 已获授权的重定向 URI
一个 step by step 的例子:
https://medium.com/@thomashellstrom/use-google-as-login-in-your-web-app-with-oauth2-352f6c7f10e6
oauth
oauth/api 调试工具
https://developers.google.com/oauthplayground
web sdk:
js sdk setup: https://developers.google.com/api-client-library/javascript/start/start-js#Setup
https://developers.google.com/identity/sign-in/web/sign-in
例子: https://developers.google.com/identity/sign-in/web/
server side sdk:
https://developers.google.com/identity/sign-in/web/backend-auth
https://developers.google.com/identity/sign-in/web/server-side-flow
手动oauth(OpenId connect):
https://developers.google.com/identity/protocols/OAuth2
https://developers.google.com/identity/protocols/OpenIDConnect
api
api 测试工具
https://developers.google.com/apis-explorer
Google 的api是在是太多了。。。so,需要啥直接google 搜索吧
用户基本信息
sdk
https://developers.google.com/identity/sign-in/web/people
id token 作为参数 call api
我们注意到在Google Identity Toolkit API v3
这个sdk中,用 google账号登陆时传递到参数时id_token, 并不是一般 oauth 的 access_token,而且jwt格式的id_token 本身就已经有基本的用户信息(claim),而jwt 本身时可以通过well know url获得的 的 public key 去验证的
https://stackoverflow.com/questions/39061310/validate-google-id-token
于是这个地方有两种做法,
- call google 的api 去update
https://www.googleapis.com/oauth2/v3/tokeninfo?id_token={id_token}
- 拿到并缓存public-key,然后用 jwt 库去验证id_token (官方推荐)
无法甄别一些被吊销的id_token,除非后端在加个监听用户状态的东西
access token 作为参数 call api
或者下面这个api
这个 api 不返回邮箱
https://www.googleapis.com/oauth2/v3/userinfo?access_token={access_token}
// 或者
https://www.googleapis.com/oauth2/v3/tokeninfo?access_token={access_token}
// 或者,注意这个是google+的api,将在2019年废弃
https://www.googleapis.com/plus/v1/people/me?access_token={access_token}
关于auth
google提供了 n 个 auth sdk,下面链接是这些sdk的比较
https://developers.google.com/identity/choose-auth
一个jwt 格式的声明
https://accounts.google.com/.well-known/openid-configuration