using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Yi.Framework.Common; using Yi.Framework.Common.Models; using Yi.Framework.Interface; using Yi.Framework.Model.Models; namespace Yi.Framework.ApiMicroservice.Controllers { [ApiController] [Route("api/[controller]/[action]")] public class AccountController : Controller { private readonly ILogger _logger; private IUserService _userService; public AccountController(ILogger logger, IUserService userService) { _logger = logger; _userService = userService; } /// /// 登录方法,要返回data:{user,token} token先写123456789,不要有导航属性 /// /// /// [HttpPost] public async Task Login(user _user) { } /// /// 不用写,单纯制作日志 /// /// [HttpPost] public Result Logout() { return Result.Success(); } /// /// code为验证码,判断一下,假装验证码都是对的 /// /// /// /// [HttpPost] public async Task Register(user _user, string code) { } /// /// 传入邮箱,需要先到数据库判断该邮箱是否被人注册过,到userservice写mail_exist方法,还有接口别忘了。这个接口不需要洞,只需要完成userservice写mail_exist与接口即可 /// /// /// [HttpPost]//邮箱验证 public async Task Email(string emailAddress) { emailAddress = emailAddress.Trim().ToLower(); //先判断邮箱是否被注册使用过,如果被使用过,便不让操作 if (!await _userService.mail_exist(emailAddress)) { string code = RandomHelper.GenerateRandomLetter(6); code = code.ToUpper();//全部转为大写 EmailHelper.sendMail(code, emailAddress); //我要把邮箱和对应的code加进到数据库,还有申请时间 //设置10分钟过期 //set不存在便添加,如果存在便替换 //CacheHelper.SetCache(emailAddress, code, TimeSpan.FromSeconds(10)); return Result.Success("发送邮件成功,请查看邮箱(可能在垃圾箱)"); } else { return Result.Error("该邮箱已被注册"); } // 邮箱和验证码都要被记住,然后注册时候比对邮箱和验证码是不是都和现在生成的一样 } } }