2024年12月11日 星期三

測試 Passwordless with ASP.Net Core + Angular

 Angular 14 + ASP.Net Core  (.Net 7)

使用 bitwarden 的免費方案測試,支援 .net standard 或 .net framework 4.6.2

參考文件

官網開發文件

 fido2-net-lib

passwordless-dotnet

 

先註冊 bitwarden 並建立一個專案取得 api secret及 api key 會用於程式開發上

 

開發專案需加入 package 

dotnet add package Passwordless --version 2.0.0
 
program.cs 
{
    options.ApiSecret = "your secret";
    options.ApiKey = "your key";
});
 
後端
實作 ASP.Net Core API Controller,請參 git hub example 實作兩個 get,會在前端程式當使用者點選註冊或登入時呼叫
create-token :呼叫 bitwareden api 取得 register token
verify-signin:呼叫 bitwareden api 驗證 token ,如果 token ok ,這邊應該就可以從後台取得登入的使用者資訊並作授權
 
前端
因為採用 Angular 14 要先取得 library
npm  i  passwordlessdev   (20241129 只能用 1.1.2以下版本)
 
請參考 官網 frontend asp.net 範例 javascript 程式碼
實作兩個方法
regisgter :先呼叫 controller create-token取得 token後再執行 register,如果用手機的話,這時你的手機就會跳出畫面讓你操作,把 token 放到手機

login:  呼叫 signinWithDiscoverable 先從手機取得 token後再叫 controller verify-signin 驗證token是否合法

 
目前邊測試邊了解 passwordless 是什麼,後續應該可以試著實作 passwordless server 在自己的機器上,可以參考黑大 ASP.NET Core 整合 WebAuthn/Passkey 無密碼登入之精簡範例
 

沒有留言:

張貼留言