【问题标题】:How can we use access token to authorize our rest api?我们如何使用访问令牌来授权我们的 REST API?
【发布时间】:2021-01-30 15:11:37
【问题描述】:

前端应用程序(React js)

我通过引用documentation 在与 Azure Ad Oauth2(Implicit Flow) 集成的 React js 中实现了 SPA,所以这是我在应用程序中的登录功能。最后,我收到的响应中还包含访问令牌。

后端应用程序(Node js)

我还创建了一个具有不同端点的 rest API(如产品列表、订单列表、更新产品详细信息)。在访问特定端点之前,我想授权用户检查他是否可以访问特定端点。因为我在我的应用程序中有两个角色(管理员和普通用户)。我在本地机器上运行后端服务。

我已经阅读了很多博客和论坛,例如访问令牌用作我们资源服务器的授权。

如何检查后端服务的 Azure 访问令牌是否有效,如果用户有权访问,如何授权相应的端点?或者请建议我正确的流程来安全地访问我的后端端点?

提前致谢。

【问题讨论】:

  • 查看this tutorial。您可以用 React SPA 替换那里的 vanillaJS SPA
  • 怎么样?您的问题解决了吗?
  • 非常感谢 Stanley Gong,它正在按预期工作

标签: node.js reactjs azure azure-active-directory


【解决方案1】:

基本上,一旦服务器端从客户端获得一些请求,服务器端应该检查客户端请求标头中访问令牌中的声明。例如,scope 声称可以访问此 API。

您可以将passport-azure-ad 与您的 Node js 服务器一起使用来轻松完成此操作。这是关于它的official sample code

在这个演示中,您可以轻松地在index.js 中配置要通过options 检查的声明:

演示结果 使用 access_as_user 范围获取访问令牌:

调用后端并成功通过验证过程:

【讨论】:

  • 抱歉回复晚了。我有笔记本电脑问题。 2-3天就会回来。之后,我会尝试这种方法并让您知道,非常感谢您抽出宝贵时间回答问题。
  • @akhil,当然,慢慢来:)
猜你喜欢
  • 2021-10-23
  • 1970-01-01
  • 2012-01-26
  • 2012-06-09
  • 1970-01-01
  • 1970-01-01
  • 2012-12-24
  • 1970-01-01
  • 2020-05-02
相关资源
最近更新 更多