aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/Controllers/AccountController.cs
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2020-08-02 00:04:06 +0200
committerivarlovlie <git@ivarlovlie.no>2020-08-02 00:04:06 +0200
commitc7d72be2d1eed9b7fbfe719752ff800653d8c089 (patch)
tree6c92e3e434bb49efc84a84c3c170a560728df93e /src/server/Controllers/AccountController.cs
parentf055808ca22d3df5e5984a1e27ef6aa49bcc5b9b (diff)
downloaddough-c7d72be2d1eed9b7fbfe719752ff800653d8c089.tar.xz
dough-c7d72be2d1eed9b7fbfe719752ff800653d8c089.zip
change db, set cookie
Diffstat (limited to 'src/server/Controllers/AccountController.cs')
-rw-r--r--src/server/Controllers/AccountController.cs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/server/Controllers/AccountController.cs b/src/server/Controllers/AccountController.cs
index 58bb7b6..ee87a68 100644
--- a/src/server/Controllers/AccountController.cs
+++ b/src/server/Controllers/AccountController.cs
@@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Dough.Models;
using Dough.Models.Database;
+using Dough.Models.Payloads;
using Dough.Models.Results;
using Dough.Utilities;
@@ -23,24 +24,25 @@ namespace Dough.Controllers
}
[HttpPost("login")]
- public async Task<ActionResult> Login(string username, string password)
+ public async Task<ActionResult> Login(LoginPayload payload)
{
- var user = _context.Users.SingleByNameOrDefault(username);
+ var user = _context.Users.SingleByNameOrDefault(payload.Username);
if (user == default)
return BadRequest(new ErrorResult("Ugyldig brukernavn eller passord",
"Verifiser at passord og brukernavn er riktig og prøv igjen"));
- if (!user.VerifyPassword(password))
+ if (!user.VerifyPassword(payload.Password))
return BadRequest(new ErrorResult("Ugyldig brukernavn eller passord",
"Verifiser at passord og brukernavn er riktig"));
var claims = new List<Claim>
{
new Claim(ClaimTypes.Name, user.Username),
- new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())
+ new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
+ new Claim(ClaimTypes.AuthenticationInstant, DateTime.UtcNow.ToString("O"))
};
- var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
+ var claimsIdentity = new ClaimsIdentity(claims, Constants.AuthenticationScheme);
var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);
var authenticationProperties = new AuthenticationProperties
@@ -51,7 +53,7 @@ namespace Dough.Controllers
ExpiresUtc = DateTime.UtcNow.AddDays(7),
};
- await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,
+ await HttpContext.SignInAsync(Constants.AuthenticationScheme,
claimsPrincipal,
authenticationProperties);
@@ -61,7 +63,7 @@ namespace Dough.Controllers
[HttpGet("logout")]
public async Task<ActionResult> Logout(string continueTo = default)
{
- await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
+ await HttpContext.SignOutAsync(Constants.AuthenticationScheme);
if (continueTo.IsPresent() && continueTo.IsValidUrl()) return Redirect(continueTo);
return Ok();
}