C#.NET 大型企業資訊化系統
阿新 • • 發佈:2018-12-27
1 /// <summary> 2 /// 獲取登入操作的驗證碼 3 /// code作為換取access_token的票據,每次使用者授權帶上的code將不一樣,code只能使用一次,5分鐘未被使用自動過期。 4 /// </summary> 5 /// <param name="userInfo">使用者資訊</param> 6 /// <returns>操作碼</returns> 7 public static BaseResult GetAuthorizationCode(BaseUserInfo userInfo)8 { 9 BaseResult result = new BaseResult(); 10 11 if (ServiceUtil.VerifySignature(userInfo)) 12 { 13 // 產生一個授權碼 14 string authorizationCode = Guid.NewGuid().ToString("N"); 15 // 設定快取伺服器,消費一次,5分鐘過期。16 using (var redisClient = PooledRedisHelper.GetTokenClient()) 17 { 18 // 2016-03-03 吉日嘎拉 讓快取早點兒失效 19 DateTime expiresAt = DateTime.Now.AddMinutes(5); 20 string key = "code:" + authorizationCode; 21 redisClient.Set(key, userInfo.OpenId, expiresAt);22 } 23 result.ResultValue = authorizationCode; 24 result.Status = true; 25 result.StatusCode = Status.OK.ToString(); 26 result.StatusMessage = Status.OK.ToDescription(); 27 result.CreateSignature(userInfo); 28 } 29 30 return result; 31 }