Exemplo n.º 1
0
        public async Task <ActionResult> Login([FromBody] LoginInfo loginInfo)
        {
            Domain.Admin.Account account = new Domain.Admin.Account();
            Resp result = await account.Login(loginInfo);

            Login_Result data = result.GetData <Login_Result>();

            if (data == Resp.NONE)
            {
                return(Pack(result));
            }

            data.Logo     = Defaults.Logo;
            data.SiteName = Defaults.SiteName;

            Claim[] claims = new Claim[]
            {
                //  token
                new Claim(ClaimTypes.Authentication, data.Token.ToString()),
                //  人员 ID
                new Claim(ClaimTypes.PrimarySid, data.Id.ToString())
            };

            string jwt = Auth.JWT.CreateJwtToken(claims);

            Response.Cookies.Append(Defaults.ADMIN_AUTH_COOKIE_KEY, jwt);

            result.SetData(data);

            return(Pack(result));
        }