/// <summary> /// 设置验证码到缓存中 /// </summary> public virtual async Task <string> SetCodeAsync(string code) { var id = Guid.NewGuid().ToString("N"); var entry = CacheEntryCollection.GetVerifyCodeEntry(id, _options.VerfiyCodeExpire); await _store.SetAsync(entry, code); return(id); }
/// <summary> /// 校验验证码有效性 /// </summary> /// <param name="code">要校验的验证码</param> /// <param name="id">验证码编号</param> /// <param name="removeIfSuccess">验证成功时是否移除</param> /// <returns></returns> public virtual async Task <bool> CheckCodeAsync(string id, string code, bool removeIfSuccess = true) { if (string.IsNullOrEmpty(code)) { return(false); } var entry = CacheEntryCollection.GetVerifyCodeEntry(id); var validCode = _store.Get <string>(entry); bool flag = code.Equals(validCode, StringComparison.InvariantCultureIgnoreCase); if (removeIfSuccess && flag) { await _store.RemoveAsync(entry.Key); } return(flag); }