cmca登录判断用户名
This commit is contained in:
@@ -30,20 +30,31 @@ func UserLogin(name, passwd string) error {
|
||||
// CMCALogin 验证随机码
|
||||
// content "user:seqNo" 组合的字符
|
||||
// signatureBase64 签名数据(base64编码)
|
||||
func CMCALogin(publicKeyStr, content, signatureBase64 string) error {
|
||||
func CMCALogin(name, publicKeyStr, content, signatureBase64 string) error {
|
||||
// 用户名密码校验
|
||||
var user model.User
|
||||
err := db.Client.Model(&model.User{}).Where("account_id=?", name).First(&user).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if user.AccountId != name {
|
||||
return fmt.Errorf("用户名错误 %s", name)
|
||||
}
|
||||
|
||||
// 公钥
|
||||
publicKeyPEM := fmt.Sprintf("-----BEGIN RSA PUBLIC KEY-----\n %s \n-----END RSA PUBLIC KEY-----", publicKeyStr)
|
||||
|
||||
// 解析公钥
|
||||
publicKey, err := utils.ParsePKCS1PublicKey(publicKeyPEM)
|
||||
if err != nil {
|
||||
fmt.Println("解析公钥失败:", err)
|
||||
return fmt.Errorf("解析公钥失败 %s", err)
|
||||
}
|
||||
|
||||
// 解码base64得到签名字节串
|
||||
signature, err := base64.StdEncoding.DecodeString(signatureBase64)
|
||||
if err != nil {
|
||||
fmt.Println("解码签名数据失败:", err)
|
||||
return fmt.Errorf("解码签名数据失败 %s", err)
|
||||
}
|
||||
|
||||
// 验证签名
|
||||
|
||||
Reference in New Issue
Block a user