node.js - 如何让前端知道您的服务器已成功检索访问 token

标签 node.js reactjs express oauth-2.0 instagram-api

我一直在研究 OAuth 2.0 授权代码流程,并尝试编写一个带有 Express 后端的 React 应用程序,该后端显示用户将在自己的 Instagram 个人资料上看到的内容。我尝试使用最少的外部库(即不使用passport-js)来实现此目的,并且不将数据库引入其中。

这是我现在的流程:

  1. 资源所有者单击 <a> React 应用程序(端口 3000)上的标记将它们重定向到 /auth/instagram我的 Express 服务器的端点(端口 8000)

  2. res.redirect(AUTHORIZATON_URL)将它们发送到 Instagram 的授权服务器

  3. 资源所有者同意,授权代码将发送回预定义的重定向 URL /auth/instagram/callback将授权码设置为查询参数

  4. 我从网址中删除授权代码并创建 POST请求https://api.instagram.com/oauth/access_token获取访问 token

现在我有了访问 token ,如何联系 React 前端让他们知道一切正常并且用户已成功通过身份验证?

根据我所读到的内容,这就是 session 和 cookie 的想法发挥作用的地方,但我没有运气找到有关如何在不引入第三方库的情况下实现我想要的目标的文档。

最后,我希望我的应用程序能够支持多个用户同时查看他们的个人资料。因为我想象将访问 token 传递到前端会破坏在后端安全检索它的目的,所以我猜我会以某种方式需要在前端和后端之间传递一个以某种方式链接到访问 token 的 session ID。

任何关于我的下一步应该采取的想法,以及您认为合适的任何文章或文档,我们都将不胜感激。谢谢!

最佳答案

由于您在服务器端进行 OAuth 身份验证,因此必须将一些参数传递给redirect_uri,以识别用户 session (请参阅: Adding a query parameter to the Instagram auth redirect_uri doesn't work? ); 当从权限服务器调用重定向 uri 时,您将知道哪个用户被授权。要通知浏览器,有两种选择: 1)使用 Web 套接字通知客户端; 2)使用定时器触发函数从客户端拉取状态;

关于node.js - 如何让前端知道您的服务器已成功检索访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53024238/

相关文章:

javascript - 在异步函数调用之外使用变量

css - 动画高度的更好方法/替代方法

express - create-react-app 构建在子目录路径中不起作用

express - React Router 4/path-to-regexp 多个可选段

node.js - Passport 注册本地返回 "Missing Credentials"

node.js - Mongoose 使用对象字段保存模型

javascript - 使用 React 应用程序的 Express 处理路线?

javascript - 在 Post 方法后重定向,expressjs

node.js - Immutablejs Map.update 破坏了单元测试

javascript - onClick 对子 <li> 使用react