using AuthStudy.Authentication.Browser;
using AuthStudy.WebApp.VModels;

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace AuthStudy.WebApp.Controllers
{
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class AccountsController : ControllerBase
    {
        public AccountsController()
        {

        }

        //[Authorize(AuthenticationSchemes = BrowserAuthenticationDefault.SchemeName)]
        [Authorize(AuthenticationSchemes = "BrowserAuthenticationHandlerByBase")]
        [HttpGet]
        public IActionResult GetAll()
        {
            //输出认证信息
            foreach (var claim in User.Claims)
            {
                Console.WriteLine($"{claim.Type}={claim.Value}");
            }

            List<AccountVM> accounts = new()
            {
                new AccountVM(){ Name="张三", Email="zhangsan@qq.com", Password="123456"},
                new AccountVM(){ Name="小明", Email="xiaoming@qq.com", Password="123456"},
                new AccountVM(){ Name="癫子", Email="dianzi@qq.com", Password="123456"}
            };

            return new JsonResult(accounts);
        }

        [HttpPost]
        public IActionResult Login(string LoginName, string LoginPassword)
        {
            var info = new { Name = LoginName, Roles = "Admin" };

            return new JsonResult(info);
        }
    }
}