MVCPostall/Postall/Controllers/OtherLoginsController.cs
2025-01-26 22:22:36 -03:00

52 lines
1.5 KiB
C#

// AccountController.cs
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Facebook;
using Microsoft.AspNetCore.Mvc;
namespace Postall.Controllers
{
public class OtherLoginsController : Controller
{
[HttpGet]
public IActionResult Index()
{
return View();
}
[HttpGet]
public IActionResult FacebookLogin()
{
var properties = new AuthenticationProperties { RedirectUri = Url.Action("FacebookResponse") };
return Challenge(properties, FacebookDefaults.AuthenticationScheme);
}
[HttpGet]
public async Task<IActionResult> FacebookResponse()
{
var result = await HttpContext.AuthenticateAsync(FacebookDefaults.AuthenticationScheme);
if (!result.Succeeded)
return RedirectToAction("Login");
var claims = result.Principal.Identities.FirstOrDefault()
.Claims.Select(claim => new
{
claim.Issuer,
claim.OriginalIssuer,
claim.Type,
claim.Value
});
// Aqui você pode implementar sua lógica de login
// Por exemplo, criar ou atualizar o usuário no banco de dados
return RedirectToAction("Index", "Home");
}
[HttpPost]
public IActionResult Logout()
{
return SignOut("Cookies", FacebookDefaults.AuthenticationScheme);
}
}
}