基本上,你的步驟是正確的 - 使用Auth0和SPA應用程序用於下面的描述。
使用Auth0進行身份驗證,並在請求中傳遞audience
參數令牌作爲response_type
。以下是一個例子,只需將{{YOUR_XXX}}部分與您自己的值交換即可。這將結果發送到https://jwt.io(你需要使用Auth0儀表板/ API將它添加到您的允許回調的客戶端。
https://{{YOUR_TENANT}}.auth0.com/authorize?client_id={{YOUR_CLIENT_ID}}&protocol=oauth2&redirect_uri=https://jwt.io&response_type=token&scope=openid email&audience=https://{{YOUR_API_AUDIENCE}}&nonce=123&state=xyz
在這裏看到docs這一點。
沒錯,SPA客戶端通常將JWT訪問令牌存儲在本地存儲中,這比使用cookie說明更好地保護了CSRF,然後使用返回的JWT訪問令牌對API進行授權請求(通常通過發送Authorization Bearer頭)。無狀態和持票人令牌(JWT訪問令牌)需要在每個請求中進行驗證 - 髮卡行/簽名/受衆/到期 - Auth0強烈支持RS256通過HS256 - 並有庫/ SDK,抽象出低層次的細節。例如,使用Node.js(Express),這與向Passport添加一些中間件一樣簡單。 在RS256 vs HS256 here上寫得很好。
有關完整示例,請使用Node.js/Express,recommend this sample。
希望這會有所幫助,如果還有什麼不清楚的地方,請隨時發表評論。
嗨,你看到我的答案從2天前下面?它有助於你的理解或任何尚不清楚的東西嗎? – arcseldon
hi @arcseldon,非常感謝你的回答。我還沒有機會實施你的建議。似乎很清楚,我剛剛提出了這個建議。當我得到更多時間在這個寵物項目上工作時,我會將其標記爲正確:) – allanberry
感謝v。很多:)祝你好運,當然,如果你需要澄清,請使用評論。 – arcseldon