带有到期日期代码的认证代码

时间:2019-12-21 07:39:11

标签: go sms aws-sdk gin

我制作了杜松子酒项目

使用twilio之类的技术通过aws sns的SMS发送功能向用户发送6位数的有效期验证码。

当我尝试使用电话号码和六位数的身份验证代码实现用户创建的功能时,我并没有想到实现赋予该身份验证代码有效期的功能的好主意。 / p>

任何人都有一个好主意,您知道这样的图书馆吗?

这是我创建源代码直到创建6位身份验证号的逻辑

func GenerateAuthCode(max int) string {
    var table = [...]byte{'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'}
    b := make([]byte, max)
    n, err := io.ReadAtLeast(rand.Reader, b, max)
    if n != max {
        return err.Error()
    }
    for i := 0; i < len(b); i++ {
        b[i] = table[int(b[i])%len(table)]
    }
    return string(b)
}

我想以此逻辑生成

谢谢

1 个答案:

答案 0 :(得分:2)

您是否在当前架构中使用任何键值存储?如果是这样,则可以使用它来维护生成的身份验证代码的TTL。

例如在Redis中,您可以直接设置按键的TTL。在其他固有不支持TTL的商店中,您可以只存储令牌有效的Unix时间戳。