using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.IdentityModel.Tokens; using Nirvana.Common; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using System.Text; using YBDevice.Body.BodyFatHelper; using YBDevice.Entity; using YBDevice.NApi.Application.SubscriberInfo; namespace YBDevice.NApi.Controllers.Api { [Route("api/[controller]/[action]")] [ApiController] public class TestApiController : ControllerBase { private readonly IBodyFatHelperService _bodyFatHelperService; private readonly ISubscriberService _subscriberService; public TestApiController(IBodyFatHelperService bodyFatHelperService, ISubscriberService subscriberService) { _bodyFatHelperService = bodyFatHelperService; _subscriberService = subscriberService; } [HttpGet] public ActionResult> Get() { return new string[] { "value1", "value1" }; } /// /// 测试算法 /// /// /// /// /// /// /// [HttpGet] public ActionResult testcalc(double weight, double height, int age, GenderType sex, int adc) { var data = _bodyFatHelperService.CalcBodyFat(weight, height, age, adc, sex); return Content(data.ToJson()); } [HttpPost] public IActionResult testerror() { throw new Exception("异常测试"); } [HttpGet] [Authorize] public ActionResult> Get2() { return new string[] { "value2", "value2" }; } [HttpGet] public async Task testsubscr() { await _subscriberService.DeleteUserDataAsync(new Application.DeleteUserDataS2SDto { DevType = 11, FamilyId = 1723, ResultId = Guid.Parse("08d9c530-0ef2-4514-8ee2-4be3beb2f40d"), time = DateTime.Parse("2021-12-22 17:47:24.937"), UserId = 1539 }); //await _subscriberService.UpdateUserHeightDataAsync(new YBDevice.Entity.UpdateUserHeightDataS2SDto //{ // Height=128, // familyid=1716, // DevType=14, // LastHeight=5.2m, // LastResultHeightTime=DateTime.Parse("2021-11-11 14:21:21"), // HalfYearHeight=0, // YearHeight=0 //}); } [HttpGet] [AllowAnonymous] public IActionResult Login(string username, string pwd) { if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(pwd)) { var claims = new[] { new Claim(JwtRegisteredClaimNames.Nbf,$"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}"),//生效时间 new Claim(JwtRegisteredClaimNames.Exp,$"{new DateTimeOffset(DateTime.Now.AddMinutes(1)).ToUnixTimeSeconds()}"),//过期时间 new Claim(ClaimTypes.Name,username) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configs.GetString("SecureKey"))); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var tokendata = new JwtSecurityToken( issuer: "",//签发人 audience: "",//受众 claims: claims, expires: DateTime.Now.AddMinutes(1), signingCredentials: creds ); string token = new JwtSecurityTokenHandler().WriteToken(tokendata); return Content(token); } return Content("登录失败"); } } }