public bool CheckRefreshToken(FunctionContext <dynamic> fc, string refreshToken, string accessToken) { string filter = TableQuery.CombineFilters(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "REFRESH_TOKEN"), TableOperators.And, TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, refreshToken)); fc.Log.LogInformation(filter); IEnumerable <RefreshTokenTE> res = fc.Table.ExecuteQuery(new TableQuery <RefreshTokenTE>().Where(filter)); if (res.Any()) { RefreshTokenTE token = res.First(); if (token.AccessToken.Equals(accessToken)) { fc.Table.Execute(TableOperation.Delete(token)); return(true); } else { return(false); } } else { return(false); } }
private string createRefreshToken(FunctionContext <dynamic> fc, string accessToken) { DateTime expiresIn = DateTime.Now; expiresIn.AddSeconds(JWTService.Expires_In_AccessToken); string refreshToken = Guid.NewGuid().ToString(); RefreshTokenTE rtTE = new RefreshTokenTE(); rtTE.AccessToken = accessToken; rtTE.Expires = expiresIn; rtTE.RowKey = refreshToken; rtTE.PartitionKey = "REFRESH_TOKEN"; TableOperation insertOrMerge = TableOperation.InsertOrMerge(rtTE); fc.Table.ExecuteAsync(insertOrMerge); return(refreshToken); }