feat: 新增SDK模块、OSS相关功能并优化Redis与代码扩展
1. 新增API版本枚举SDK项,创建SDK基础控制器 2. 添加IList、string扩展方法,新增时间戳扩展工具 3. 新增OSS配置、STS凭证服务、文件处理相关代码 4. 重构Redis缓存组件,替换StackExchange.Redis为CSRedisCore 5. 修复原有Redis操作方法调用,新增基础控制器快捷返回方法 6. 新增阿里云OSS、短信、VOD相关SDK依赖 7. 配置阿里云OSS相关参数到appsettings
This commit is contained in:
@ -2,7 +2,6 @@ using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using QYZH.InteractiveMagazine.Common.Helpers;
|
||||
using QYZH.InteractiveMagazine.Infrastructure.Auth;
|
||||
using QYZH.InteractiveMagazine.Infrastructure.Cache;
|
||||
using QYZH.InteractiveMagazine.IService;
|
||||
using QYZH.InteractiveMagazine.Models.Common;
|
||||
using QYZH.InteractiveMagazine.Models.Entity;
|
||||
@ -220,8 +219,8 @@ public class WeChatAuthService(BaseRepository<Users> usersRepository, IConfigura
|
||||
var token = JwtHelper.GenerateToken((long)refreshedUser.Id, refreshedUser.Name, jwtSettings);
|
||||
|
||||
// 清除旧用户 Token 缓存,写入新用户 Token 缓存
|
||||
await RedisHelper.KeyDeleteAsync($"{TokenKeyPrefix}:{currentUserId}");
|
||||
await RedisHelper.StringSetAsync($"{TokenKeyPrefix}:{refreshedUser.Id}", token, TimeSpan.FromMinutes(jwtSettings.ExpiryMinutes));
|
||||
await RedisHelper.DelAsync($"{TokenKeyPrefix}:{currentUserId}");
|
||||
await RedisHelper.SetAsync($"{TokenKeyPrefix}:{refreshedUser.Id}", token, TimeSpan.FromMinutes(jwtSettings.ExpiryMinutes));
|
||||
|
||||
return new WeChatSwitchUserOutput
|
||||
{
|
||||
@ -259,7 +258,7 @@ public class WeChatAuthService(BaseRepository<Users> usersRepository, IConfigura
|
||||
var token = JwtHelper.GenerateToken((long)primaryUser.Id, primaryUser.Name, jwtSettings);
|
||||
|
||||
// 缓存 Token 到 Redis
|
||||
await RedisHelper.StringSetAsync($"{TokenKeyPrefix}:{primaryUser.Id}", token, TimeSpan.FromMinutes(jwtSettings.ExpiryMinutes));
|
||||
await RedisHelper.SetAsync($"{TokenKeyPrefix}:{primaryUser.Id}", token, TimeSpan.FromMinutes(jwtSettings.ExpiryMinutes));
|
||||
|
||||
var userOutputs = users.Select(MapUserToOutput).ToList();
|
||||
|
||||
@ -277,7 +276,7 @@ public class WeChatAuthService(BaseRepository<Users> usersRepository, IConfigura
|
||||
private async Task<string> GetAccessTokenAsync(WeChatSettings settings)
|
||||
{
|
||||
// 先从 Redis 缓存获取
|
||||
var cachedToken = await RedisHelper.StringGetAsync(AccessTokenCacheKey);
|
||||
var cachedToken = await RedisHelper.GetAsync(AccessTokenCacheKey);
|
||||
if (!string.IsNullOrWhiteSpace(cachedToken))
|
||||
{
|
||||
return cachedToken;
|
||||
@ -296,7 +295,7 @@ public class WeChatAuthService(BaseRepository<Users> usersRepository, IConfigura
|
||||
|
||||
// 缓存 access_token,提前 5 分钟过期(微信默认 7200 秒)
|
||||
var expiresIn = response.ExpiresIn > 300 ? response.ExpiresIn - 300 : response.ExpiresIn;
|
||||
await RedisHelper.StringSetAsync(AccessTokenCacheKey, response.AccessToken, TimeSpan.FromSeconds(expiresIn));
|
||||
await RedisHelper.SetAsync(AccessTokenCacheKey, response.AccessToken, TimeSpan.FromSeconds(expiresIn));
|
||||
|
||||
logger.LogInformation("获取微信 access_token 成功,有效期: {ExpiresIn} 秒", expiresIn);
|
||||
return response.AccessToken;
|
||||
|
||||
Reference in New Issue
Block a user