From 757e1b86a7a2a67103c705d4115e03bd808ea7f0 Mon Sep 17 00:00:00 2001 From: imlam Date: Tue, 15 Apr 2025 10:49:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20totp=E5=A2=9E=E5=8A=A0issuer=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/dev33/satoken/secure/totp/SaTotpTemplate.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/secure/totp/SaTotpTemplate.java b/sa-token-core/src/main/java/cn/dev33/satoken/secure/totp/SaTotpTemplate.java index 848db916..34c34089 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/secure/totp/SaTotpTemplate.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/secure/totp/SaTotpTemplate.java @@ -151,6 +151,18 @@ public class SaTotpTemplate { return StrFormatter.format("otpauth://totp/{}?secret={}", account, secretKey); } + /** + * 生成谷歌认证器的扫码字符串 (形如:otpauth://totp/{issuer}:{account}?secret={secretKey}&issuer={issuer}) + * + * @param account 账户名 + * @param secretKey TOTP 秘钥 + * @param issuer 签发者 + * @return / + */ + public String generateGoogleSecretKey(String account, String issuer, String secretKey) { + return StrFormatter.format("otpauth://totp/{}:{}?secret={}&issuer={}", issuer, account, secretKey, issuer); + } + protected String _generateTOTP(String secretKey, long time) { // Base32解码密钥 byte[] keyBytes = SaBase32Util.decodeStringToBytes(secretKey); -- Gitee