好的,您没有提到您用来与 Twilio API 通信的框架或语言。但我会解释原理。
首先,我建议您有一个数据表,用于存储您发送的代码和接收代码的用户。(如果您正在使用数据库,您可以将代码字段设置为唯一,这样您就可以确定重复)
然后在将代码发送到 Twilio API 以便它可以通过 SMS 将其转发给用户之前,您应该通过检查新生成的代码是否已被使用来验证它。
这是一个使用 nodejs 和 mongoose ORM(Mongo DB 数据库)的示例:
const mongoose = require( "mongoose" );
const Schema = mongoose.Schema;
const uniqueValidator = require( "mongoose-unique-validator" );
const CodeSchema = new Schema( {
owner: { type: Schema.Types.ObjectId, ref: "User" },
code: { type: Number, index: true, unique: true }
} ,{ timestamps: true } );
CodeSchema.plugin( uniqueValidator, { message: "is already taken." } );
CodeSchema.pre( "validate", function( next ){
if( !this.code ) {
this.code = Math.floor( Math.random() * Math.pow( 36, 6 ) | 0 );
}
next();
} );
module.exports = mongoose.model( "Code", CodeSchema ) || mongoose.models.Code;
然后,当您创建架构时,此预验证功能将执行并用唯一代码填充代码字段。