示例#1
0
        //scenario 2 : get the access_token by refresh_token
        private ResponseData DoRefreshToken(Parameters parameters)
        {
            var token = _repo.GetToken(parameters.refresh_token, parameters.client_id);

            if (token == null)
            {
                return(new ResponseData
                {
                    Code = "905",
                    Message = "can not refresh token",
                    Data = null
                });
            }

            if (token.IsStop == 1)
            {
                return(new ResponseData
                {
                    Code = "906",
                    Message = "refresh token has expired",
                    Data = null
                });
            }

            var refresh_token = Guid.NewGuid().ToString().Replace("-", "");

            token.IsStop = 1;
            //expire the old refresh_token and add a new refresh_token
            var updateFlag = _repo.ExpireToken(token);

            var addFlag = _repo.AddToken(new RToken
            {
                ClientId     = parameters.client_id,
                RefreshToken = refresh_token,
                Id           = Guid.NewGuid().ToString(),
                IsStop       = 0
            });

            if (updateFlag && addFlag)
            {
                return(new ResponseData
                {
                    Code = "999",
                    Message = "OK",
                    Data = GetJwt(parameters.client_id, refresh_token)
                });
            }
            else
            {
                return(new ResponseData
                {
                    Code = "910",
                    Message = "can not expire token or a new token",
                    Data = null
                });
            }
        }
示例#2
0
        private ResponseData GenerateRefreshToken(Parameters parameters)
        {
            var token = _tokenRepository.GetToken(parameters.refresh_token.Trim(), parameters.username.Trim());

            if (token == null)
            {
                return(new ResponseData
                {
                    Code = "905",
                    Message = "can not refresh token",
                    Data = null
                });
            }
            if (token.IsStop == 1)
            {
                return(new ResponseData
                {
                    Code = "906",
                    Message = "refresh token has expired",
                    Data = null
                });
            }

            var refresh_token = Guid.NewGuid().ToString().Replace("-", "");

            token.IsStop = 1;
            //expire the old refresh_token and add a new refresh_token
            var updateFlag = _tokenRepository.ExpireToken(token);

            var addFlag = _tokenRepository.AddToken(new RToken
            {
                ClientName   = parameters.username.Trim(),
                RefreshToken = refresh_token,
                Id           = Guid.NewGuid().ToString(),
                IsStop       = 0
            });

            if (updateFlag && addFlag)
            {
                return(new ResponseData
                {
                    Code = "999",
                    Message = "Ok",
                    Data = GetJwt(parameters.username.Trim(), refresh_token)
                });
            }

            return(new ResponseData
            {
                Code = "910",
                Message = "can not expire token or a new token",
                Data = null
            });
        }
        /// <summary>Get the access_token by refresh_token</summary>
        /// <param name="parameters"></param>
        /// <param name="_repo"></param>
        /// <param name="_settings"></param>
        public ResponseData DoRefreshToken(Parameters parameters, IRTokenRepository _repo, IOptions <Audience> _settings)
        {
            var token = _repo.GetToken(parameters.refresh_token, parameters.client_id).Result;

            if (token == null)
            {
                return(new ResponseData
                {
                    Code = "905",
                    Message = "can not refresh token",
                    Data = null
                });
            }
            if (token.IsStop == 1)
            {
                return(new ResponseData
                {
                    Code = "906",
                    Message = "refresh token has expired",
                    Data = null
                });
            }
            var refresh_token = Guid.NewGuid().ToString().Replace("-", "");

            token.IsStop = 1;
            var updateFlag = _repo.ExpireToken(token).Result;
            var addFlag    = _repo.AddToken(new RToken
            {
                ClientId     = parameters.client_id,
                RefreshToken = refresh_token,
                Id           = Guid.NewGuid().ToString(),
                IsStop       = 0
            });

            if (updateFlag && addFlag.Result)
            {
                return(new ResponseData
                {
                    Code = "999",
                    Message = "OK",
                    Data = GetJwt(parameters.client_id, refresh_token, _settings)
                });
            }
            else
            {
                return(new ResponseData
                {
                    Code = "910",
                    Message = "can not expire token or a new token",
                    Data = null
                });
            }
        }
示例#4
0
 /// <summary>Get the access_token by refresh_token</summary>
 /// <param name="parameters"></param>
 /// <param name="_repo"></param>
 /// <param name="_settings"></param>
 public ResponseData DoRefreshToken(Parameters parameters, IRTokenRepository _repo, IOptions <Audience> _settings)
 {
     try
     {
         var token = _repo.GetToken(parameters.refresh_token, parameters.client_id).Result;
         if (token == null)
         {
             return(new ResponseData
             {
                 Code = "905",
                 Message = "can not refresh token",
                 Data = null
             });
         }
         if (token.IsStop == 1)
         {
             return(new ResponseData
             {
                 Code = "906",
                 Message = "refresh token has expired",
                 Data = null
             });
         }
         var refresh_token = Guid.NewGuid().ToString().Replace("-", "");
         token.IsStop = 1;
         var updateFlag = _repo.ExpireToken(token).Result;
         var addFlag    = _repo.AddToken(new RToken
         {
             ClientId     = parameters.client_id,
             RefreshToken = refresh_token,
             Id           = Guid.NewGuid().ToString(),
             IsStop       = 0
         });
         if (updateFlag && addFlag.Result)
         {
             return(new ResponseData
             {
                 Code = "999",
                 Message = "OK",
                 Data = GetJwt(parameters.client_id, refresh_token, _settings, BsonSerializer.Deserialize <RegisterModel>(MongoHelper.CheckForDatas("UserName", parameters.client_id, null, null, "Authentication", "Authentication")).UserRole)
             });
         }
         else
         {
             return(new ResponseData
             {
                 Code = "910",
                 Message = "can not expire token or a new token",
                 Data = null
             });
         }
     }
     catch (Exception ex)
     {
         LoggerDataAccess.CreateLog("AuthHelper", "DoRefreshToken", ex.Message);
         return(new ResponseData
         {
             Code = "400",
             Message = "Failed",
             Data = null
         });
     }
 }