代码之家  ›  专栏  ›  技术社区  ›  Abhishek Jaiswal

从Web API获取访问令牌,当您从Google获得令牌、idToken等时

  •  0
  • Abhishek Jaiswal  · 技术社区  · 8 年前

    我用过 angular-6-social-login 在我的网站上登录谷歌,如链接所示。现在返回以下数据=>

    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"
    

    我把那个idtoken解码成 JSON Web Token Decoder 在web api上,用idtoken的“at_hash”值交叉检查令牌(由google提供的accesstoken)。 现在,经过大量的验证之后,我检查用户的预先注册,并在if块中注册他。

    注: 我正在手动进行这些验证和注册。所以,我并没有使用webapidentity提供的方法,比如外部登录等。

    如果是正常登录,我会向 http://localhost:57310/token 具有用户名、密码和grant_类型,并提供了我的accesstoken,因此它是授权的。

    但是,在这种情况下,我已经在api上了,所以不需要任何post请求,我已经有了token(由google提供),但是这个不是webapi提供的,所以没有授权。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Thierry Falvo    8 年前

    对于这个用例,我建议您使用 ng-gapi 是的。它将允许您使用google登录,检索凭证(jwt with identity),并请求将access_令牌用于google api调用。

    在幕后,是一个 Google Sign-in API 整合。例如,无需担心刷新访问令牌,以及验证jwt签名。

    推荐文章