![](/img/trans.png)
[英]Node.js server works locally but not on Heroku because of missing `cleanModifiedSubpaths`
[英]Node.js script works locally but not locally on firebase serve?
我正在嘗試部署此處描述的 Spotify Web API 授權代碼 + webapp 的修改版本。 https://github.com/jonnyk20/spotify-node-react-starter-kit/tree/master/auth-server
我的 React 應用程序從一個帶有登錄按鈕的屏幕開始。 用戶點擊登錄,然后他們被重定向到上面鏈接中的 authorization_code node.js 腳本。 他們登錄,然后被重定向回反應應用程序,現在提供了適當的 Spotify 權限。
當我在本地運行所有內容時,它工作正常,並且我能夠讓 react 應用程序部分完全由 firebase 托管,而 authorization_code 在本地偵聽。 但是,當我嘗試讓 authorization_code 部分在 firebase 上運行時,我在通過 OAuth 登錄后不斷收到以下錯誤:
TypeError: uuid is not a function
at new Multipart (C:\Users\ryanb\Desktop\Moodify\app\login-test\functions\node_modules\request\lib\multipart.js:10:19)
at new Request (C:\Users\ryanb\Desktop\Moodify\app\login-test\functions\node_modules\request\request.js:125:21)
at request (C:\Users\ryanb\Desktop\Moodify\app\login-test\functions\node_modules\request\index.js:53:10)
at Function.post (C:\Users\ryanb\Desktop\Moodify\app\login-test\functions\node_modules\request\index.js:61:12)
at C:\Users\ryanb\Desktop\Moodify\app\login-test\functions\index.js:94:17
at Layer.handle [as handle_request] (C:\Users\ryanb\Desktop\Moodify\app\login-test\functions\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\ryanb\Desktop\Moodify\app\login-test\functions\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Users\ryanb\Desktop\Moodify\app\login-test\functions\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Users\ryanb\Desktop\Moodify\app\login-test\functions\node_modules\express\lib\router\layer.js:95:5)
at C:\Users\ryanb\Desktop\Moodify\app\login-test\functions\node_modules\express\lib\router\index.js:281:22
其中第 94 行是上面鏈接中這部分代碼的開頭。
request.post(authOptions, function (error, response, body) {
if (!error && response.statusCode === 200) {
var access_token = body.access_token,
refresh_token = body.refresh_token;
此錯誤顯示的 URL 是
http://localhost:5000/callback?code=AQAG2UXELvI-ymjtxirilFlVE_9zt-tTstXs4TH9YR5zpfWD6xyi6VrGuOgh7Xz_f5cPTJjsR-aFYHj9LxsKRE1HsmSODPadyMOdpLzCDC8k6sNqrehXEmyo3k2tE1MvjJVcFo-wJx3rZrUcnQ_mhFqx2l7IGIiIC1eniux_yHUVu3uRCTj1MCUk7U1ozbRk7kn5MJC4bDHMfS0rvrlie_oo0YpnXj-bkm1rtkmu00Sf_Nl-DiLROmkNjVWNHUAdc4CJcjF6Ml5mBqCSPmUXITbagC_YFKSP0QqaTokcM-IwamGZA2uode5phaseZ9JYnPXILFSiU2Ia3Pgevd8Yrh9PgkKPIbVoM1vWuWSs79KkId2vOBetnrXoVw&state=9aTobHAgxpyMMdb5
當我在本地運行所有內容時,它永遠不會轉到 Web 瀏覽器中的回調 url; 登錄后,我立即被重定向到 localhost:3000,url 中帶有訪問和刷新令牌,此時我已登錄並准備就緒。 我在這里缺少什么? 我按照本視頻中的說明創建了一個新的 Firebase 函數/應用程序部署文件夾,從我帖子開頭的鏈接中復制代碼並將相關代碼添加到 index.html。 我已經嘗試了所有我能想到的方法; 這是我第一次部署,我對 react 或 node 不是很有經驗,而且網上沒有關於這個錯誤的任何信息,所以我不知道如何開始解釋它或如何找出我出錯的地方。
有沒有比我試圖通過 firebase 托管 node.js 腳本的偵聽服務器更簡單的方法?
注意:我認為這無關緊要,但我將 authorization_code 部分和客戶端(react app)部分部署到了不同的 firebase 項目中。
您是否將 Firebase 應用中指定的重定向路由添加到 Spotify 開發人員儀表板中的重定向 URL 列表中?
如果您使用與本地部署相同的 url,該應用程序將嘗試將您從 firebase 應用程序發出的調用重定向到 localhost,這是行不通的。
將 firebase 重定向 url 添加到開發人員儀表板,它應該可以工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.