Files
mixtape/zero.Web/Controllers/TestController.cs
T

71 lines
1.5 KiB
C#
Raw Normal View History

2020-04-15 14:09:52 +02:00
using Microsoft.AspNetCore.Identity;
2020-04-15 01:42:06 +02:00
using Microsoft.AspNetCore.Mvc;
using System.Linq;
2020-04-15 01:42:06 +02:00
using System.Threading.Tasks;
using zero.Core;
using zero.Core.Api;
2020-04-15 01:42:06 +02:00
using zero.Core.Entities;
2020-04-16 00:56:22 +02:00
using zero.Core.Identity;
namespace zero.Web.Controllers
{
2020-04-15 01:42:06 +02:00
//[ZeroAuthorize("tobi")]
public class TestController : BackofficeController
{
private IAuthenticationApi Api { get; set; }
2020-04-15 01:42:06 +02:00
private SignInManager<User> SignInManager;
public TestController(IZeroConfiguration config, IAuthenticationApi api, SignInManager<User> signInManager) : base(config)
{
Api = api;
2020-04-15 01:42:06 +02:00
SignInManager = signInManager;
}
2020-04-15 01:42:06 +02:00
[HttpPost]
public async Task<IActionResult> Login([FromQuery] string username, [FromQuery] string password)
{
Microsoft.AspNetCore.Identity.SignInResult result = await SignInManager.PasswordSignInAsync(username, password, false, true);
return Json(new
{
username,
password,
result
});
}
2020-04-15 14:09:52 +02:00
[ZeroAuthorize]
public async Task<IActionResult> GetUser()
{
User user = await SignInManager.UserManager.GetUserAsync(HttpContext.User);
return Json(new
{
user
});
}
[ZeroAuthorize]
public IActionResult GetUserClaims()
{
return Json(HttpContext.User.Claims.Select(claim => new { claim.Type, claim.Value }).ToArray());
}
2020-04-15 14:09:52 +02:00
[HttpPost]
public async Task<IActionResult> Logout()
{
await SignInManager.SignOutAsync();
return Json(new
{
success = true
});
}
}
}