所以现在我正在我的服务器上实现oauth2,但我只想支持client_credentials授权。问题是,节点-OAuth2-服务器说支持这种类型的拨款,我几乎调试了整个库,有些事情对我来说没有意义。
据我所知,client_credentials补助金应该是这样运作的:
client_id和client_secret,这是我们获得client_secret的唯一一次,我们应该将其交给客户端。client_id应该存储在数据库中,包含任何额外的数据(比如相关的帐户id或类似的东西)和一个client_secret的散列,这样我们以后就可以验证它了。client_id和client_secret。我可能错了,但这正是我所需要的,这正是C#恒等所做的,并解释了这里。
在我的例子中,我正在使用nodejs。实际上是一个NestJS项目,所以我尝试使用这个库,它基本上是node-oauth2-server的包装器,如果您查看一下node-oauth2-server内部,看起来它们只支持授权代码,这是因为AuthorizeHandler.handle()总是返回授权代码,AuthenticateHandler.handle()总是期望授权代码并返回访问令牌。基本上,我需要调用AuthenticateHandler.handle(),但我必须传递并检查client_id和client_secret,而不是检查授权代码。
这是一个与我完全相同的最近的问题:https://github.com/oauthjs/node-oauth2-server/issues/552
因此,首先,我想确认我是对的,这个库的实现方式很糟糕,其次,还有其他client_credentials内置的nodejs吗?
发布于 2022-05-18 23:57:12
正如您已经提到的,目前它不支持client_credentials授权,您仍然可以在内部使用授权代码流授予类型来获取访问令牌。
authorization code流所需的其他属性。oauth code准备令牌交换调用。access_token。https://stackoverflow.com/questions/72295694
复制相似问题