public async Task <IActionResult> AuthenticateLongCode([FromBody] AuthenticateLongCodeInputModel model) { if (ModelState.IsValid) { var status = await _authenticateOrchestrator.AuthenticateLongCodeAsync(model.LongCode); if (status.StatusCode == HttpStatusCode.Redirect) { return(NextUrlJsonResult(status.RedirectUrl)); } return(status.ToJsonResult()); } return(new ActionResponse(ModelState).ToJsonResult()); }
public async Task <IActionResult> SignInLink(string longCode) { var response = await _authenticateOrchestrator.AuthenticateLongCodeAsync(longCode); switch (response.StatusCode) { case HttpStatusCode.Redirect: return(Redirect(response.RedirectUrl)); case HttpStatusCode.NotFound: return(NotFound()); case HttpStatusCode.Unauthorized: default: return(Redirect("/signin")); // todo: pass response.Message along to be displayed to the user } }
public async Task <ActionResult> SignInLink(string longCode) { var status = await _authenticateOrchestrator.AuthenticateLongCodeAsync(longCode); switch (status.StatusCode) { case HttpStatusCode.Redirect: return(Redirect(status.RedirectUrl)); case HttpStatusCode.NotFound: return(NotFound()); default: AddPostRedirectMessage(status.Text); return(RedirectToAction(nameof(SignIn))); } }
public async Task <ActionResult> SignInLink(string longCode) { var response = await _authenticateOrchestrator.AuthenticateLongCodeAsync(longCode); switch (response.StatusCode) { case 301: var username = response.Message; await _authenticateOrchestrator.SignInUserAsync(HttpContext, username, false); return(Redirect(response.RedirectUrl)); case 404: return(NotFound()); default: AddPostRedirectMessage(response.Message); return(RedirectToAction("SignIn")); } }