除了 Spotify 登录重定向路径“在服务器上找不到”之外,生产 React 应用程序正常运行 [重复]

Posted

技术标签:

【中文标题】除了 Spotify 登录重定向路径“在服务器上找不到”之外,生产 React 应用程序正常运行 [重复]【英文标题】:Production React app functioning except Spotify log-in redirect path "not found on server" [duplicate] 【发布时间】:2019-11-21 08:51:41 【问题描述】:

生产 ReactJS 应用,使用 Google App Engine 集成 Spotify Web Api (https://developer.spotify.com/documentation/web-api/reference-beta/):https://widget-dashboard-app.appspot.com/

所有路由(/settings/about/contact)都按预期工作,但是当用户尝试登录 Spotify 时,重定向路径 /settings/#access_token=[BIG-LONG-TOKEN]&token_type=Bearer&expires_in=3600 通过 GAE 导致此错误:

Error: Not Found
The requested URL /settings/ was not found on this server.

我的第一个想法是我的app.yaml 文件中有问题:

# [START runtime]
runtime: python27
api_version: 1
threadsafe: true
# [END runtime]

# [START handlers]
handlers:
- url: /
  static_files: build/index.html
  upload: build/index.html
- url: /
  static_dir: build
- url: /.*
  static_files: build/static/\1
  upload: build/static/.*
- url: /settings/.*
  static_files: build/static/\1
  upload: build/static/.*
# [END handlers]

我已经在 Interwebs 上搜索了两周来寻找可能存在的问题。我都读过了。这。文档。

实际结果应该是:用户通过 Spotify 的 Web API 登录,并被重定向回https://widget-dashboard-app.appspot.com/settings/#access_token=[BIG-LONG-TOKEN]&token_type=Bearer&expires_in=3600,他们的浏览器将在几秒钟内开始播放音乐。这在开发中有效。

【问题讨论】:

【参考方案1】:

由于它是一个 SPA,您的路由由应用处理,因此您需要一条位于您的主要 index.html 上的包罗万象的路由。所以看起来你的通配符规则应该是这样的:

url: /.*
  static_files: build/index.html
  upload: build/index.html

我认为你不需要 /settings/ 一个

【讨论】:

以上是关于除了 Spotify 登录重定向路径“在服务器上找不到”之外,生产 React 应用程序正常运行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Spotify ios SDK 登录:无效的重定向 URI

Spotify Web API 重定向问题

如何通过点击Spotify按钮将用户重定向到播放列表而无需登录?

(iOS) Spotify 重定向 URI 错误:SpotifyLogin.LoginError.invalidUrl

Spotify API 将 URL 重定向到本地文件系统?

Flutter:Oauth2 - 重定向 uri 的问题