我正在创建一个完整的堆栈应用程序,它在不同的域/起源上都具有React/TS前端和FastAPI Python后端。对于我的第一个API端点(一个auth端点),我不能像我计划的那样使用axios.get(/login),因为我在后端使用了一个第三方API,它不能用于重定向到我的前端。解决方案似乎是有一个带有直接链接到http://backend_url/login的标记的登录按钮。这是可行的,但是真正地将用户发送到后端的文本url,而不仅仅是将HTTP请求调用到后端,这感觉很奇怪/不安全。这做法不好吗?有什么更好的方法来实现这一点吗?我很感激任何方向。
发布于 2022-07-28 12:49:44
问题是如何处理用户需要授权的第三方API,请参阅OP上的注释。
您可以直接从前端重定向到Spotify的/authorize端点。他们将调用您在向他们注册应用程序时给出的returnUrl,并提供一个authorization code。如果它在您的前端(例如http://frontend.com/oauth/callback ),则可以将该授权代码提供给您的后端(例如,http://backend/api/auth)。该端点可以使用在您向Spotify注册应用程序时收到的客户端凭据来交换访问令牌的授权代码(调用Spotify的/token端点,类似的东西)。后端可以存储和使用这些访问令牌,您的前端可以调用后端。
https://stackoverflow.com/questions/73147205
复制相似问题