您的当前位置:首页谷歌验证法 串接Google Two-factor Authen

谷歌验证法 串接Google Two-factor Authen

2024-12-12 来源:哗拓教育
image.png

1. 開啟專案 , 然後去 Nuget 下載 一套叫做 Google.Authenticator 的套件

image.png

2. 首先,你得產生一組給每一個客戶的 AccountSecretKey 並且保密這個Key 這邊範例我是隨便取一個GUID 並且只取10碼來當作 sample ,避免每次更新我用 static 暫時保存著

private static string AccountSecretKey { get; set; }

        protected void Page_Load(object sender, EventArgs e)
        {

            //建立一把用戶的私鑰
            if (string.IsNullOrEmpty(AccountSecretKey)) {

                AccountSecretKey = Guid.NewGuid().ToString("N").Substring(0, 10);
            }
            ltlAccountSecretKey.Text = AccountSecretKey;

3. 產生 QR Code , 在產生 QR Code 前,你需要得到該用戶的 ManualEntryKey 只要透過 該library TwoFactorAuthenticator.GenerateSetupCode 即可

//產生QR Code.
            var tfa = new TwoFactorAuthenticator();
            var setupInfo = tfa.GenerateSetupCode("DONMA BLOG",  AccountSecretKey, 300, 300);
            //用內建的API 產生
            ltlQRCode.Text = "<img src='" + setupInfo.QrCodeSetupImageUrl + "' />";

結果:


image.png

4. QR Code 內容 :

ltlQRCodeContent.Text =  setupInfo.ManualEntryKey+ "&issuer="+ "DONMA BLOG";

6. 驗證用戶輸入:

protected void btnValid_Click(object sender, EventArgs e)
        {
            TwoFactorAuthenticator tfa = new TwoFactorAuthenticator();
            //第一個參數是你當初產生QRcode 所產生的Secret code 
            //第二個參數是用戶輸入的純數字Code
            var result = tfa.ValidateTwoFactorPIN(AccountSecretKey, txtUserType.Text);
            ltlResult.Text = result ? "SUCCESS!!" : "FAIL!!";
        }

很簡單吧 :)

显示全文