oauth2.0 如何使用ExpressJS重定向到专用URI方案?

laawzig2  于 2023-05-16  发布在  其他
关注(0)|答案(1)|浏览(198)

我正在尝试在我的NodeJS服务器(用TypeScript编写)中为本地应用程序实现OAuth2代码授权流。规范的一部分要求我重定向到一个专用uri方案。然而,在ExpressJS文档中,我没有看到这样的选项。这可能吗?

更新

添加了更多细节here

4uqofj5v

4uqofj5v1#

原生应用通常会自己实现此流程。首先,在安装时向操作系统注册私有URI方案。本地应用然后打开系统浏览器并运行代码流。
授权服务器通常通过在URL上返回授权代码来完成后端工作,如下图所示。然后,浏览器通知本机应用,本机应用拾取代码并完成获取令牌的流程:

x-mycompany-myapp:/callback?code=xxx&state=yyy

要了解端到端流是如何工作的,您可以运行我的code sample

授权服务器

ExpressJS不是为实现授权服务器角色而设计的,尽管理论上可以实现。相反,使用免费的云或基于Docker的授权服务器。实现这样一个系统有许多微妙之处。

更新

您的登录页面似乎是一个SPA,它发出 AJAX 请求来发布用户凭据。你不能重定向它,因为它会导致CORS错误。一个快速解决方法是在JSON响应有效负载中返回响应URL,然后在JavaScript中将location.href设置为该值。
请注意,真实的授权服务器中的登录流是一个相当深入的主题。OAuth Threat Model中提供了一些行为。

相关问题