mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 18:13:26 +08:00
### 0.6.0 专业版(大版本升级,破坏性升级,请酌情处理):
【新增】弃用现在sku前端,启用全新sku组件,更加灵活,体验更好。 【新增】新增通过商品序列获取sku全新列表功能。 【新增】仓储层底层增加二级缓存功能,后面将逐步完善底层缓存中心模块。 【新增】0元购,积分兑换模式下,也去计算用户是否科技升级。 【新增】数据及业务仓储增加二级缓存功能。curd可自主控制是否缓存和清除。 【新增】订单导出excel数据增加商品名称+货品sku组合展示的方式。 【新增】自定义交易组件增加【获取商家信息】【更新商家信息】两个接口处理。 【新增】增加公告列表及公告详情页面,首页组件公告点击跳转列表展示。 【新增】个人中心增加【公告中心】入口。 【新增】后台余额变动增加说明录入。 【调整】将前端能进行分包的文件夹都进行分包,减少主包占用,方便进行二开。 【调整】因ckeditor5存在图片不可设置宽度,上传不支持mp4,排版不畅等情况,降级使用ckeditor4版本。 【修复】修复0.5.5版本售后积分返还机制积分模式判断异常的问题。 【修复】修复使用积分全额抵扣,或其他优惠政策导致的0元购,未进行短信提醒及小票打印机未打印的问题。 【修复】修复更换ckeditor4编辑器后接龙添加编辑调用失败的问题。 【修复】修复积分全额抵扣,金额0元购的情况下,进行售后执行完毕,订单未完结的情况。 【优化】去除分销申请面板按钮无用并失效报错的customStyle属性。 【优化】优化部分方法中使用手写字符串的遗留问题,统一采用enum方式。 【优化】优化前端及接口部分命名错误的问题。错将skill误写成seckill。 【优化】去除uniapp端多个客服代码。 【优化】商品详情底部完善购物车数量显示的问题。 【优化】优化团购列表,拼团列表,秒杀页面页面样式布局差异问题。 【优化】调整支付结果界面样式效果,仿微信支付结果界面。更加清晰明朗。 【优化】优化售后提交页面json计算,开放当用户下单后但未发货情况下,可以申请直接售后的操作需求。 【优化】后台商家手机号码支持设置多个,使用小写逗号分隔,方便多个商家管理员接收下单提醒。 【优化】后台售后单审核,调整售后商品为必选项。
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Dynamic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
@@ -598,6 +599,5 @@ namespace CoreCms.Net.Utility.Helper
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,6 +139,15 @@ namespace CoreCms.Net.Utility.Helper
|
||||
public static bool FilterChar(string inputValue)
|
||||
{
|
||||
return Regex.IsMatch(inputValue, "[`.~!@#$^&*()=|\"{}':;',\\[\\]<>?~!@#¥……&*&;|{}。*-+]+");
|
||||
//return Regex.IsMatch(inputValue, "[`.~!@#$^&*()=|\"{}':;',\\[\\]<>?~!@#¥……&*&;|{}。*-+]+");
|
||||
//if (Regex.IsMatch(inputValue, "[A-Za-z0-9\u4e00-\u9fa5-]+"))
|
||||
//{
|
||||
// return Regex.Match(inputValue, "[A-Za-z0-9\u4e00-\u9fa5-]+").Value;
|
||||
//}
|
||||
//return "";
|
||||
//return Regex.IsMatch(inputValue, "[~!@#$%^&*()_+|<>,.?:;'\\[\\]{}\"]+");
|
||||
|
||||
//return Regex.IsMatch(inputValue, "[A-Za-z0-9\u4e00-\u9fa5-/]+");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
119
CoreCms.Net.Utility/Helper/JwtTokenHelper.cs
Normal file
119
CoreCms.Net.Utility/Helper/JwtTokenHelper.cs
Normal file
@@ -0,0 +1,119 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
using System.Linq;
|
||||
using System.Security.Claims;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
|
||||
namespace CoreCms.Net.Utility.Helper
|
||||
{
|
||||
/// <summary>
|
||||
/// Jwt帮助工具
|
||||
/// </summary>
|
||||
public static class JwtTokenHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// 创建Token(暂不使用)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string CreateJwt(CoreCmsUser userInfo)
|
||||
{
|
||||
//创建声明Token数组
|
||||
var claim = new List<Claim> {
|
||||
new Claim(ClaimTypes.GivenName, userInfo.userName),
|
||||
new Claim(ClaimTypes.Name, userInfo.nickName),
|
||||
new Claim(JwtRegisteredClaimNames.Jti, userInfo.id.ToString()),
|
||||
new Claim(ClaimTypes.Expiration, DateTime.Now.AddHours(1).ToString("yyyy-MM-dd HH:mm:ss")) };
|
||||
|
||||
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("yanglingcong@qq.com"));//密钥大小要超过128bt,最少要16位
|
||||
|
||||
//实例化一个token对象
|
||||
//第一种方式
|
||||
//var token = new JwtSecurityToken(claims: claim);
|
||||
|
||||
//第二种方式
|
||||
var token = new JwtSecurityToken(
|
||||
issuer: "kevin",//发起人:当前项目
|
||||
audience: "kevin project",//订阅:我们需要谁去使用这个Token
|
||||
claims: claim,//声明的数组
|
||||
expires: DateTime.Now.AddHours(1),//当前时间加一小时,一小时后过期
|
||||
signingCredentials: new SigningCredentials(key, SecurityAlgorithms.HmacSha256)//数字签名 第一部分是密钥,第二部分是加密方式
|
||||
);
|
||||
|
||||
//生成token
|
||||
var jwtToken = new JwtSecurityTokenHandler().WriteToken(token);
|
||||
return jwtToken;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 解析token
|
||||
/// </summary>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
public static GetTokenModel AnalysisToken(string token)
|
||||
{
|
||||
//第一种直接用JwtSecurityTokenHandler提供的read方法
|
||||
var jwtHander = new JwtSecurityTokenHandler();
|
||||
JwtSecurityToken jwtSecurityToken = jwtHander.ReadJwtToken(token);
|
||||
|
||||
GetTokenModel tokenModel = new GetTokenModel();
|
||||
var currentInfo = jwtSecurityToken.Claims;
|
||||
if (currentInfo.Any())
|
||||
{
|
||||
tokenModel.UserName = currentInfo.FirstOrDefault(f => f.Type == ClaimTypes.MobilePhone)!.Value;
|
||||
tokenModel.NickName = currentInfo.FirstOrDefault(f => f.Type == ClaimTypes.Name)!.Value;
|
||||
tokenModel.UserId = currentInfo.FirstOrDefault(f => f.Type == ClaimTypes.NameIdentifier)!.Value.ObjectToInt(0);
|
||||
|
||||
tokenModel.Expired = currentInfo.FirstOrDefault(f => f.Type == ClaimTypes.Expired)!.Value.ObjectToInt(0);
|
||||
var dt = DateTime.Now;
|
||||
tokenModel.Expiration = currentInfo.FirstOrDefault(f => f.Type == ClaimTypes.Expiration)!.Value.ObjectToDate(dt);
|
||||
|
||||
if (dt > tokenModel.Expiration)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return tokenModel;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取token信息
|
||||
/// </summary>
|
||||
public class GetTokenModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户
|
||||
/// </summary>
|
||||
public string UserName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户昵称
|
||||
/// </summary>
|
||||
public string NickName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户序列
|
||||
/// </summary>
|
||||
public int UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 有效时间分钟
|
||||
/// </summary>
|
||||
public int Expired { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 有效时间
|
||||
/// </summary>
|
||||
public DateTime Expiration { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -12,7 +12,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using CoreCms.Net.Model.ViewModels.Basics;
|
||||
|
||||
namespace CoreCms.Net.Utility.Helper
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user