簡體   English   中英

對於沒有登錄頁面的 Angular 應用程序,我應該如何存儲一次性用戶名和密碼?

[英]How should I store a single use username and password for an Angular app without a login page?

我將創建一個 Angular 應用程序,它將調用我創建的 DotNet Core API。 因為 API 本身調用第三方 API 需要使用 API 密鑰進行保護,所以我想保護我的 API 以便其他人可以在未經授權的情況下調用我的 API。

為此,我想我可以只使用一個一次性用戶名和密碼,Angular 應用程序每次調用我的 API 時都會使用 append - 即不會有登錄頁面。

實現這一目標的推薦方法是什么? 我還不知道我將在哪里(或是否)公開托管它,但我最終可能會以某種方式將其部署在 Azure 中。

選項似乎是:

  1. 將用戶名和密碼存儲在 web.config 中,然后可能對文件進行加密(實際上我不確定我最終是否會決定使用純文本 web.config 文件是否可以,但我現在只是想要選項) - 請參閱https://www.infoq.com/articles/Secure-web.config 但是,我不確定如何在 Angular 中解密它。

  2. 加密和解密 Angular 將使用的環境文件 - 請參閱https://medium.com/nontechcompany/secure-angular-configuration-credentials-in-containerized-environment-as-of-2021-a7f36ed676ed和鏈接文章https:// betterprogramming.pub/how-to-secure-angular-environment-variables-for-use-in-github-actions-39c07587d590https://javascript.plainenglish.io/setup-dotenv-to-access-environment-variables- in-angular-9-f06c6ffb86c0 ,盡管這些似乎是針對“容器化”部署的,但我還不能 100% 確定我了解它們的工作原理。

我建議您在初始用戶登錄時從 api 生成一個 JWT 簽名令牌。

正如您所說,您在客戶端和第三方 API 之間有一個自定義 API 那么為什么要保留敏感數據客戶端?

如果您需要使用純文本用戶名/密碼服務器端,您仍然可以 hash / 解碼 JWT 令牌並檢索用戶信息以連接第三方 API。

這樣您就不必在客戶端存儲任何用戶憑據/敏感數據並將其公開在客戶端 api 調用中,您只需處理可以存儲在 cookie 或本地存儲中的令牌。

✌️

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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