假设我们有一个客户端SPA和一个应用程序API:
- myapp.com
- api.myapp.com
使用OAuth2授权码流,我们需要指定redirect_uri
。我认为最好的做法是永远不要将access_token
或authorization_code
暴露在前端。
我看到很多例子,建议注册指向SPA和本地移动应用程序的客户端应用程序的重定向URI。例如:https://www.oauth.com/oauth2-servers/redirect-uris/
您应该将重定向URI注册为myapp.com/callback
还是api.myapp.com/callback
?每种方法的优缺点是什么?
1条答案
按热度按时间fslejnso1#
您只需将后端API端点配置为重定向URI即可。
原因是,您必须使用令牌端点来交换访问令牌的授权码,如果您在后端服务器中这样做,尤其是当您的OAuth客户端是机密客户端(配置了机密的客户端)时,这将是有意义的
与机密OAuth客户端的用户界面中的令牌交换授权码将在前端暴露客户端的秘密,我不建议这样做
如果您的OAuth客户端是公共客户端,并且您有SPA,但您没有服务器或后端API,则可以将SPA URL配置为重定向URI。在这种情况下,我建议您使用“使用PKCE的授权码”流程,该流程希望您提供代码质询和代码验证器。
但是在您的例子中,因为您已经拥有一个后端服务器,所以我建议您使用后端API作为重定向URI