Node.js Auth0验证客户端应用程序以使用外部API

Node.js Auth0验证客户端应用程序以使用外部API,node.js,reactjs,express,oauth,oauth-2.0,Node.js,Reactjs,Express,Oauth,Oauth 2.0,我在React中有一个SPA,可以调用外部API,比如: GEThttps://myapi.com/api/items/1或获取https://myapi.com/api/items/ 在myapi.com服务器中,使用oAuth2通过express jwt和auth0 api jwt rsa validation保护路由,son仅使用头进行调用:{Authorization:'bearer'+token}以状态200响应 如果我从服务器端应用程序使用这些调用,我可以从POST获取令牌https

我在React中有一个
SPA
,可以调用外部
API
,比如:
GEThttps://myapi.com/api/items/1
获取https://myapi.com/api/items/

myapi.com
服务器中,使用oAuth2通过
express jwt
auth0 api jwt rsa validation
保护路由,son仅使用
头进行调用:{Authorization:'bearer'+token}
以状态200响应

如果我从服务器端应用程序使用这些调用,我可以从
POST获取
令牌https://myapi.auth0.com/oauth/token
传递
客户id、客户机密、授权类型和受众
。但是,由于应用程序是客户端的,我认为有一种最佳方法,避免暴露
客户端机密
等等

我尝试过这种方法,但我正在处理
回调uri
和其他令人困惑的东西

其主要思想是允许应用程序,比如说
https//myapp.com/list
使用
API
,比如
GEThttps://myapi.com/api/items
(无用户,无密码)

要点:

  • 如何在没有用户的情况下对应用程序进行身份验证
  • 在我的应用程序中,在哪个位置调用
    oAuth2
    ?(
    onEnter
    顶级路径,位于
    componentDidMount
    ?)和
  • 令牌在响应中的位置
由于我在Auth0社区提出了这个问题,我认为其他人可以分享这个问题

对于我的用例,最重要的部分是

你得出了正确的结论;SPA不建议将令牌端点用于客户端凭据授权或资源所有者密码授权(ROPC)[…]这意味着如果希望SPA在没有用户概念的情况下访问API,则该API需要公开。

因此,在我的例子中,我将公开API,或者考虑一些用户/密码实现