簡體   English   中英

Node.js 腳本可以在本地運行,但不能在 firebase 服務本地運行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM