public ActionResult <SignInResultModel> SignIn(
            [FromForm] string sEmail
            , [FromForm] string sPW)
        {
            //결과용
            ApiResultReady rrResult = new ApiResultReady(this);
            //로그인 처리용 모델
            SignInResultModel armResult = new SignInResultModel();

            rrResult.ResultObject = armResult;

            //유저 검색
            UserSignInfoModel user
                = GlobalStatic.UserList
                  .List.FirstOrDefault(m =>
                                       m.Email == sEmail &&
                                       m.Password == sPW);


            if (user != null)
            {
                //에러가 없다.
                rrResult.Message = user.Email;

                armResult.access_token  = "dasdflcc090fkkc";
                armResult.refresh_token = "das54340fl8fd";
            }
            else
            {
                rrResult.InfoCode = "1";
                rrResult.Message  = "아이디나 비밀번호가 틀렸습니다.";
            }

            return(rrResult.ToResult());
        }
        [Authorize]//OAuth2 인증 설정
        public ActionResult <SignInSimpleResultModel> AccessToUserInfo()
        {
            //리턴 보조
            ApiResultReady armResult = new ApiResultReady(this);
            //리턴용 모델
            SignInSimpleResultModel tmResult = new SignInSimpleResultModel();

            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);

            //검색된 유저
            UserSignInfoModel user
                = GlobalStatic.UserList.List
                  .FirstOrDefault(m =>
                                  m.ID == cm.id_int);

            if (null != user)
            {//유저 정보가 있다.
                tmResult.id    = user.ID;
                tmResult.email = user.Email;
            }
            else
            {//유저 정보가 없다.
                armResult.InfoCode = "1";
                armResult.Message  = "엑세스 토큰이 유효하지 않습니다.[로그인 필요]";
            }

            return(armResult.ToResult(tmResult));
        }
        public ActionResult <SignInResultModel> SignIn(
            [FromForm] string sEmail
            , [FromForm] string sPW)
        {
            //결과용
            ApiResultReady rrResult = new ApiResultReady(this);
            //로그인 처리용 모델
            SignInResultModel armResult = new SignInResultModel();

            rrResult.ResultObject = armResult;

            //유저 검색
            UserSignInfoModel user
                = GlobalStatic.UserList
                  .List.FirstOrDefault(m =>
                                       m.Email == sEmail &&
                                       m.Password == sPW);


            if (user != null)
            {
                //토큰 요청
                TokenResponse tr = null;
                //토큰 요청
                tr = GlobalStatic.TokenProc.RequestTokenAsync(sEmail, sPW).Result;

                if (true == tr.IsError)
                {//에러가 있다.
                    rrResult.InfoCode = "1";
                    rrResult.Message  = "아이디나 비밀번호가 틀렸습니다.";
                }
                else
                {//에러가 없다.
                    //로그인 되어있는 유저정보 저장
                    GlobalStatic.SignInList.Add(user.ID, tr.RefreshToken);

                    armResult.id    = user.ID;
                    armResult.email = user.Email;

                    armResult.lv = 0;

                    armResult.access_token  = tr.AccessToken;
                    armResult.refresh_token = tr.RefreshToken;
                }
            }
            else
            {
                rrResult.InfoCode = "1";
                rrResult.Message  = "아이디나 비밀번호가 틀렸습니다.";
            }

            return(rrResult.ToResult());
        }
        /// <summary>
        /// 로그인에 사용하는 UserSignInfoModel을
        /// IdentityServer4_Custom.UserServices.UserRepositoryModel 로 변환한다.
        /// </summary>
        /// <param name="insUserDB"></param>
        /// <returns></returns>
        private UserRepositoryModel ToUserRepositoryModel(UserSignInfoModel insUserDB)
        {
            UserRepositoryModel urmReturn = null;

            if (null != insUserDB)
            {//데이터가 있다.
                urmReturn           = new UserRepositoryModel();
                urmReturn.idUser    = insUserDB.ID;
                urmReturn.SignEmail = insUserDB.Email;
                urmReturn.Password  = insUserDB.Password;
            }


            return(urmReturn);
        }