node.js - SPA+API OAuth流程,用什么?

标签 node.js angular express authentication oauth-2.0

我们正在努力解决我们的应用程序要使用什么 OAuth 流程。

我们使用 Node.JS 作为后端 API,使用 Angular 作为前端。

我们想要做的是,登录用户,检索访问 token 并使用此访问 token 来发出一些 API 请求(基本 POST/GET/PUT/DELETE)。

  • 用户(目前仍未知)登陆登录表单或注册表单。他继续登录或注册。
  • 登录后,他会使用访问 token 登录仪表板,现在每次他想要与 API 交互时,他都必须使用访问 token 才能与后端进行互操作。 (这是一种经典行为)。

这看起来很简单,我们想要使用隐式流,但我们需要client_id来检索访问 token ,并且此时用户仍然未知。

然后我们考虑使用密码授予流程,因为我们的用户将拥有登录名/密码,但有 OAuth 规范。建议不要使用它,除非我们别无选择。

我知道这是一个非常基本的问题,但是您建议使用哪种 OAuth 流程?如果我们别无选择,我们将只使用密码授予,但希望探索每一个解决方案。

谢谢!

最佳答案

我不确定我是否理解您的意思:

we wanted to use the Implicit Flow but we need a client_id in order to retrieve an access token and the user is still unknown at this point.

如果您使用 Oauth2.0s 隐式流程,那么您的 Angular 应用程序应在授权服务器上注册为公共(public)客户端 - 该过程将为您的 Angular 应用程序提供唯一的 client_id。然后,您的 Angular 应用程序可以使用隐式授权并将未知用户重定向到授权服务器的authorise端点,并在查询字符串中传递其client_id及其redirect_uri和各种其他内容。

授权端点将提示用户注册/登录身份提供商并同意您的 Angular 应用请求的范围。 用户登录(或注册)后,授权服务器应该重定向回 Angular 应用的已注册 redirect_uri,并在返回的 http 查询字符串的哈希段中传递 access_token

关于node.js - SPA+API OAuth流程,用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50841594/

相关文章:

mysql - 使用流操作数据并将其写入 CSV

azure - ASP.NET Core 在 docker 构建之前运行 Angular 构建

node.js - NodeJS/Express 中使用 API 网关进行微服务 API 身份验证

javascript - 单击单选按钮时折线图不显示数据

node.js - 从 azure-blob 获取图像并将其发送到客户端,而不使用 Node 服务器本地保存

ajax - Node.js Express-根据错误类型不同地处理错误

node.js - 如何设置 Node/Express 作为 STUN 服务器?

javascript - 更新 Jade 页面的一部分?

node.js - 如何在express中重定向到post请求

javascript - 带有 express.js 的 jquery-file-upload-middleware : how to move files & add watermarks?