最近嘗試使用 Azure Static Web Apps CLI 來開發與部署前端應用程式,但發現我用 swa login
之後,卻完全沒有「登出」的選項,經研究後發現 swa
把登入過程的認證資訊全部都放在 Windows 控制台的認證管理員(Credential Manager)之中。這篇文章我打算來分享如何透過 PowerShell 快速清除儲存在系統中的認證資訊。
安裝 Azure Static Web Apps CLI 並登入 Azure
-
安裝 Node.js LTS
choco install nodejs-lts -y
-
安裝 Azure Static Web Apps CLI
npm install -g @azure/static-web-apps-cli
-
使用 swa
命令列工具登入 Azure 帳戶
swa login
過程會自動開啟瀏覽器,並進行 OAuth 2.0 授權流程,通過認證與授權後,基本上就會在 Windows 控制台的認證管理員(Credential Manager)寫入認證資訊。
如何清空 Azure 登入快取 (或任何儲存在裡面的任何認證資訊)
以下我們會透過 Windows 內建的 cmdkey
工具程式來幫助我們操作認證管理員中的資訊。
-
列出所有已儲存的認證清單(Credential List)
cmdkey.exe /list
若是 swa
寫入的資料,其內容會長這樣:
Target: LegacyGeneric:target=swa-cli-50a48d6ace789c15788810715b78db37/AzureCloud-1
Type: Generic
User: AzureCloud-1
這裡的 Target:
是重要的識別資訊,未來要刪除該筆記錄必須使用這個值。
-
列出所有 swa
相關的認證清單(Credential List)
cmdkey.exe /list | findstr LegacyGeneric:target=swa-cli
也可以寫簡單一點:
cmdkey.exe /list | findstr swa-cli
-
刪除一筆紀錄
cmdkey.exe /delete:"LegacyGeneric:target=swa-cli-50a48d6ace789c15788810715b78db37/AzureCloud-1"
畫面會顯示以下訊息:
CMDKEY: Credential deleted successfully.
-
快速刪除所有 swa
建立的認證資料
cmdkey.exe /list | findstr swa-cli | ForEach-Object {
cmdkey /delete:$($_.Split(' ')[5])
}
總結
事實上,這個 CMDKEY
命令列工具支援新增與刪除認證,使用上也相當容易上手,相當不錯!
PS> cmdkey
Creates, displays, and deletes stored user names and passwords.
The syntax of this command is:
CMDKEY [{/add | /generic}:targetname {/smartcard | /user:username {/pass{:password}}} | /delete{:targetname | /ras} | /list{:targetname}]
Examples:
To list available credentials:
cmdkey /list
cmdkey /list:targetname
To create domain credentials:
cmdkey /add:targetname /user:username /pass:password
cmdkey /add:targetname /user:username /pass
cmdkey /add:targetname /user:username
cmdkey /add:targetname /smartcard
To create generic credentials:
The /add switch may be replaced by /generic to create generic credentials
To delete existing credentials:
cmdkey /delete:targetname
To delete RAS credentials:
cmdkey /delete /ras
相關連結