我正在玩一個Azure移動應用程序後端(nodeJS),如討論here。我一直在使用默認的Web設置配置來開發我的移動應用程序,但現在我想定製雲後端功能,所以我創建了Azure移動應用程序SDK的本地後端。本地測試Azure移動認證 - 無效的jwt簽名
我使用我的移動應用程序(使用Azure客戶端SDK的授權方面)登錄,然後捕獲AuthToken。
我再構建一個郵差HTTP POST請求,這些標題:
ZUMO-API-VERSION = 2.0.0
x-zumo-auth = eyJ0eX000000000000000000000000000000.eyJ000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000000000-000000000_00000_00000
NB:我tokenm實際上並不擁有所有這些零,它看起來像一個有效的標記。
然而,POST請求的迴應是:
{ "name": "JsonWebTokenError", "message": "invalid signature" }
我想這可能是因爲由不同的服務(默認後端,而不是我的項目在本地主機上運行)產生的身份驗證令牌。所以我初始化客戶端採用本地主機,並試圖與進行身份驗證,但我得到:
JS: Error Logging in! Error: Logging in with the selected authentication provider is not enabled chromium: [INFO:CONSOLE(12)] "Not allowed to load local resource: file:///android_asset/webkit/android-weberror.png", source: data:text/html,chromewebdata (12)
更新:
我發現我的WEBSITE_AUTH_SIGNING_KEY從https://myApp.scm.azurewebsites.net/Env.cshtml
並將其添加到我的azureMobile.js file
,這是在同一目錄作爲我的app.js
文件。它看起來像這樣:
console.log("Test");
module.exports = {
cors: {
origins: ['localhost']
},
data: {
provider: 'mssql',
server: '127.0.0.1',
database: 'mytestdatabase',
user: 'localDemo',
password: 'myPassword'
},
logging: {
level: 'verbose'
},
auth: { secret: 'xzy0000000000000000000000000000000000' },
};
但是,我仍然得到相同的結果。有沒有辦法告訴我的azureMobile文件是否被正確引用,或者是否有其他錯誤?
謝謝!我已經完成了這一步,並找到了我的'WEBSITE_AUTH_SIGNING_KEY',並將其添加到我的'azureMobile.js'文件中,該文件位於與我的app.js文件相同的目錄中。但是,我仍然得到相同的結果。有沒有辦法告訴我的azureMobile文件是否被正確引用,或者是否有其他錯誤?任何其他的想法,我會很感激! –
我意識到我在一兩次發佈前就打破了這個過程。在github上添加了一個問題,解釋並提供瞭解決方法 - https://github.com/Azure/azure-mobile-apps-node/issues/444。 –
我擔心即使啓用了該屬性,我也會遇到問題。我的'azureMobile.js'文件沒有被識別(有沒有辦法檢查這個)或其他什麼是錯誤的,我是否需要設置任何auth提供者的簽名祕密?例如我使用的令牌是一個Facebook令牌,我需要指定「APPSETTING_WEBSITE_AUTH_FB_APP_ID」還是「APPSETTING_WEBSITE_AUTH_FB_APP_SECRET」? –