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 848db91698fe09e31809cecb79a8bc07003224d6..34c340890c3c27dfa7870bef173a44dde5f41d43 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);