从 Web API 获取 access_token,当您从 Google 获得令牌、idToken 等时
Get access_token from Web API, when you have token, idToken, etc, from Google
我用 angular-6-social-login 在我的网站上使用 google 登录,如 link 所示。现在它 return 以下数据 =>
email:"xxxxx"
id:"xxxxxxx"
idToken:"xxxx.xxxxxxxxx.xxxxxx"
image:"https://lh5.googleusercontent.com/xxxx/photo.jpg"
name:"Abhishek Jaiswal"
provider:"google"
token:"ya29.GlztBZpLW2v1jld20GR0iHOjMiveYmDhnaDRjWmsmh8tH_DSVW4-lRnYIL4Eau2-ZKVXlFFK-alCk5-REBR22aKkeUUIats14KtXEGfHlZIw5iIlKP5LSuEAtmnG0w"
我在 Web Api 上将该 idToken 解码为 JSON Web Token Decoder,交叉检查令牌(accessToken 由 google 提供)和 idToken 的 "at_hash" 值。
现在经过大量验证后,我检查用户的事先注册,并在 if 块中注册他。
注意:我正在手动进行这些验证和注册。所以,我没有使用 Web ApiIdentity 提供的方法,例如 ExternalLogin 等。
在正常登录的情况下,我使用用户名、密码和 grant_type 向 http://localhost:57310/token
发出 post 请求,这为我提供了 accessToken,因此它已被授权。
但是,在这种情况下,我已经在 API,所以不需要任何 post 请求,而且我已经有令牌(by google),但是这个网络未提供 api,因此未经授权。
对于这个用例,我建议您使用ng-gapi。它将允许您使用 Google 登录,检索凭据(具有身份的 JWT),并请求 access_token 与 Google API 调用一起使用。
在幕后,这是一个 Google Sign-in API 集成。所以不用担心刷新 access_token 以及验证 JWT 签名。
我用 angular-6-social-login 在我的网站上使用 google 登录,如 link 所示。现在它 return 以下数据 =>
email:"xxxxx"
id:"xxxxxxx"
idToken:"xxxx.xxxxxxxxx.xxxxxx"
image:"https://lh5.googleusercontent.com/xxxx/photo.jpg"
name:"Abhishek Jaiswal"
provider:"google"
token:"ya29.GlztBZpLW2v1jld20GR0iHOjMiveYmDhnaDRjWmsmh8tH_DSVW4-lRnYIL4Eau2-ZKVXlFFK-alCk5-REBR22aKkeUUIats14KtXEGfHlZIw5iIlKP5LSuEAtmnG0w"
我在 Web Api 上将该 idToken 解码为 JSON Web Token Decoder,交叉检查令牌(accessToken 由 google 提供)和 idToken 的 "at_hash" 值。 现在经过大量验证后,我检查用户的事先注册,并在 if 块中注册他。
注意:我正在手动进行这些验证和注册。所以,我没有使用 Web ApiIdentity 提供的方法,例如 ExternalLogin 等。
在正常登录的情况下,我使用用户名、密码和 grant_type 向 http://localhost:57310/token
发出 post 请求,这为我提供了 accessToken,因此它已被授权。
但是,在这种情况下,我已经在 API,所以不需要任何 post 请求,而且我已经有令牌(by google),但是这个网络未提供 api,因此未经授权。
对于这个用例,我建议您使用ng-gapi。它将允许您使用 Google 登录,检索凭据(具有身份的 JWT),并请求 access_token 与 Google API 调用一起使用。
在幕后,这是一个 Google Sign-in API 集成。所以不用担心刷新 access_token 以及验证 JWT 签名。