基于Golang Gin框架生成邮件验证码并校验服务完整实现

基于Golang Gin框架生成邮件验证码并校验服务完整实现

数据库模型 (model/email_code.go)

package model

import (
    "time"
    "gorm.io/gorm"
)

// EmailCode 邮箱验证码模型
type EmailCode struct {
    gorm.Model
    Email     string  `gorm:"size:100;not null;index"`  // 邮箱地址
    Code      string  `gorm:"size:10;not null"`        // 验证码
    ExpiresAt HTime   `gorm:"not null"`                // 过期时间
    IsUsed    bool    `gorm:"default:false"`           // 是否已使用
}

// HTime 自定义时间类型,用于处理数据库中的时间格式
type HTime struct {
    time.Time
}

// GormDataType 实现 Gorm 的数据类型接口
func (t HTime) GormDataType() string {
    return "datetime"
}

// Email SMTP配置模型
type Email struct {
    Host     string `json:"host"`     // SMTP服务器地址
    Port     int    `json:"port"`     // 端口
    Username string `json:"username"` // 用户名
    Password string `json:"password"` // 密码
    FormName string `json:"formName"` // 发件人名称
}

API接口实现 (api/mail.go)

package api

import (
    "net/http"
    "your_project/service"
    "your_project/utils"

    "github.com/gin-gonic/gin"
)

type MailApi struct {
    mailService *service.MailService
}

func NewMailApi(mailService *service.MailService) *MailApi {
    return &MailApi{mailService: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值