护照如何接收个人资料?

编程入门 行业动态 更新时间:2024-10-11 03:16:12

<a href=https://www.elefans.com/category/jswz/34/1771386.html style=护照如何接收个人资料?"/>

护照如何接收个人资料?

我已经用passport实现了GitHub-Strategy。这是Glith。它的运行效果非常好,我正在从GitHub接收有关重定向的用户个人资料。

现在,我只是想了解它在幕后的实际运作方式。我没有在stackoverflow上找到任何类似的问题,也没有在Passport上找到。

因此,如果我在Auth-Flow期间打开Chrome Developer Tools,当我单击“使用GitHub登录”时,似乎发生了以下情况:

  1. 节点路由/auth/github被称为
  2. 节点重定向到;redirect_uri=https%3A%2F%2Frightful-exclusive-carriage.glitch.me%2Fauth%2Fgithub%2Fcallback&client_id=ccfcc73fac8223317176
  3. 向用户显示GitHub-Login-Page
  4. 用户在GitHub凭证中输入类型,然后单击“登录”
  5. GitHub检查凭据
  6. 如果提供了有效的凭据,则对用户进行身份验证,并且GitHub重定向到已注册的回调端点,在我的情况下为
  7. 回调URL具有一个URL参数,例如?code=02337a951c242b9202fd。有趣的是,它是GET方法,没有提供其他任何东西。
  8. 在服务器上,passport.authenticate('github', ...)方法在/auth/github/callback路由内部被调用。
  9. 当实例化GithubStrategy时,将传递带有签名function(accessToken, refreshToken, profile, cb)的回调函数。神奇的是,accessTokenprofile在这里完全可用。而且我不明白这是怎么发生的。

护照如何接收个人资料?node.js是否在服务器端调用GitHub?也许与?code=<id>吗?

回答如下:

是的,这正是NodeJS所做的。这与Passport.JS或Node.JS没有任何关系。这是授权工作的OAuth机制。

[每当诸如Twitter / facebook之类的身份提供者使用/callback查询参数调用您的?code=时,它都会命中另一个URL并获取AccessToken,RefreshToken和Idtoken(基本上是用户配置文件)。

您也可以在源代码中签出:

在护照oauth策略的此strategy.js#L157和strategy.js#L173中:

if (req.query && req.query.code) {
    ....
    self._oauth2.getOAuthAccessToken(code, params,
        function(err, accessToken, refreshToken, params) {
    ....
    }
    ....
}

并且oauth2.js#L177软件包upi的oauth2.js#L190和node-oauth可以看到:

exports.OAuth2.prototype.getOAuthAccessToken= function(code, params, callback) {
  ...
  this._request("POST", this._getAccessTokenUrl(), post_headers, post_data, null, function(error, data, response) {
    ....
  })
}

特别是POST请求正在发送到accessTokenUrl。

更多推荐

护照如何接收个人资料?

本文发布于:2024-05-07 10:09:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755761.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:护照   个人资料

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!