Node.js Auth0验证客户端应用程序以使用外部API
我在React中有一个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
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,或者考虑一些用户/密码实现