32 lines
1 KiB
C#
32 lines
1 KiB
C#
using Microsoft.AspNetCore.Authentication;
|
|
using Microsoft.AspNetCore.Authentication.Cookies;
|
|
using Microsoft.AspNetCore.DataProtection;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Lieb.Controllers
|
|
{
|
|
[Route("[controller]/[action]")] // Microsoft.AspNetCore.Mvc.Route
|
|
public class AccountController : ControllerBase
|
|
{
|
|
public IDataProtectionProvider Provider { get; }
|
|
|
|
public AccountController(IDataProtectionProvider provider)
|
|
{
|
|
Provider = provider;
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult Login(string returnUrl = "/")
|
|
{
|
|
return Challenge(new AuthenticationProperties { RedirectUri = returnUrl }, "Discord");
|
|
}
|
|
|
|
[HttpGet]
|
|
public async Task<IActionResult> Logout(string returnUrl = "/")
|
|
{
|
|
//This removes the cookie assigned to the user login.
|
|
await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
|
|
return LocalRedirect(returnUrl);
|
|
}
|
|
}
|
|
}
|