public async Task <IActionResult> Account(string authority, [FromBody] AuthorityModel model) { if (model == null || model?.payload == null) { return(Unauthorized()); } var authorities = _issuers["owner"].Authorities; if (!authorities.Any()) { return(Unauthorized()); } string token = model.token; if (string.IsNullOrWhiteSpace(authority)) { authority = authorities.Keys.ToArray()[0]; token = JwtHelper.GenerateToken(new Claim[] { }, _settings.Value.AwronoreSettings.OtpTimeOut); } if (string.IsNullOrWhiteSpace(token)) { return(Unauthorized()); } var principle = JwtHelper.GetClaimsPrincipal(token); if (principle?.Identity?.IsAuthenticated == true) { try { var claimsIdentity = principle.Identity as ClaimsIdentity; var(verifyResult, otp) = await _issuers["owner"].VerifyAsync(authority, claimsIdentity.Claims.ToArray(), model.payload); if (verifyResult.Authority == null) { return(Ok(new { auth_token = verifyResult.Token })); } return(Ok(new { verify_token = verifyResult.Token, authority = verifyResult.Authority, parameters = verifyResult.Payload, otp = "", timeOut = _settings.Value.AwronoreSettings.OtpTimeOut })); } catch (Exception e) { if (e is AwronoreIdentityException) { throw e; } return(Unauthorized()); } } return(Unauthorized()); }
public async Task <IActionResult> Account([FromBody] AuthorityModel model) { return(await Account("", model)); }