- python中的 JWT
weixin_34355881
pythonjsonphp
Jsonwebtoken(JWT),是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。基
- 【Python】PyJWT:轻松实现 JSON Web Token (JWT) 网络令牌的生成与验证
@Unity打怪升级
Pythonpythonjson网络开发语言前端pipipython
PyJWT是一个用Python实现的轻量级库,用于处理JSONWebToken(JWT)。JWT是一种安全的方式,用来表示双方之间经过签名的令牌,通常用于认证和授权场景。PyJWT简化了JWT的生成和验证过程,使得开发者能够轻松地在Python项目中集成JWT功能。在这篇博客中,我们将深入介绍PyJWT,展示如何生成、解码和验证JWT令牌,并且会通过代码示例演示如何在实际项目中使用PyJWT进行认
- RAG流程中,要怎么对文本进行拆词?
java干货仓库
八股文汇总大模型面试人工智能自然语言处理llama
在RAG(Retrieval-AugmentedGeneration)流程中,对文本的拆词(Tokenization)是影响检索和生成效果的关键步骤。以下是文本拆词的技术细节及优化方法:1.拆词的核心目标检索阶段:确保查询(Query)和文档(Document)的拆词方式一致,提高检索匹配精度。生成阶段:适配大模型的词表,避免生成时的OOV(Out-of-Vocabulary)问题。2.常见拆词方
- 优化提示内容生成技术框架:提示工程架构师的坚实后盾
优化提示内容生成技术框架:提示工程架构师的坚实后盾引言背景:大语言模型时代的“提示瓶颈”当GPT-4、Claude3、Gemini等大语言模型(LLM)的参数规模突破万亿、上下文窗口扩展至百万token时,一个矛盾逐渐凸显:模型能力的跃升与提示质量的滞后,正在成为制约AI应用落地的核心瓶颈。2023年斯坦福大学的研究显示,在企业级LLM应用中,70%的功能故障源于提示设计缺陷——或因指令模糊导致输
- python和vue结合开发前端,请手动配置Vue开发环境
小六oO
智能写作vue.js前端javascript
vue怎么全局定义一个变量代替路径。原理:设置一个专用的的全局变量模块文件,模块里面定义一些变量初始状态,用exportdefault暴露出去,在里面使用Vue.prototype挂载到vue实例上面或者在其它地方需要使用时,引入该模块便可。全局变量模块文件:文件:constserverSrc='';consttoken='12345678';consthasEnter=false;constus
- Claude 4 全新上线,科研和写作能力大幅提升!文献检索和综述更容易,实测好用!(附专业提示词)
智写AI
AI学术写作指南人工智能
在2025年5月22日,Claude正式发布了它的4系列模型:Opus4和Sonnet4七哥总结下这两款模型的特点,Sonnet4适合快速响应的任务,Opus4适合需要推理的复杂多步骤任务。两款模型都有20万token的上下文窗口。对科研人员、程序开发者来说,Claude这一代模型不仅性能强悍,还在多项核心能力上实现了突破式进阶。说说最新亮相的Claude4系列模型在多项核心能力上的三大进阶之处:
- 【Azure 存储服务】使用REST API操作Azure Storage Table,删除数据(Delete Entity)
云中路灯
问题描述使用AzureStorageTable的RESTAPI,实现根据过滤条件删除满足条件的数据,调用方法为DeleteEntity(AzureStorage)问题实现第一步:通过AzureStroage门户或者是其他工具(如:AzureStorageExplorer)生成Table的SASTokenimage.png第二步:准备过滤条件,用GETEntity进行验证,看是否可以查询出多条消息示
- 在 Vue 3 中使用 axios 拦截器处理过期 token 时报错的问题
使用axios拦截器处理过期token的代码如下所示axios.interceptors.response.use(function(response){console.log('返回结果:',response);returnresponse;},error=>{console.log('返回错误:',error);constresponse=error.response;conststatus=
- 【Tora3踩坑日记】npx tailwindcss init报错:SyntaxError: Unexpected token ‘?‘
前端程序媛-Tian
Taro踩坑日记tailwindcss
详细报错信息如下:}=getOptions(name,options??{},false);^SyntaxError:Unexpectedtoken'?'atwrapSafe(internal/modules/cjs/loader.js:915:16)atModule._compile(internal/modules/cjs/loader.js:963:27)atObject.Module._e
- 零基础学习性能测试第三章:jmeter构建性能业务场景
目录**一、性能场景构建核心四要素****二、四步构建电商性能场景(含截图级配置)****场景需求**:模拟100用户并发操作,其中:**步骤1:创建基础结构****步骤2:设置用户比例(吞吐量控制器)****步骤3:添加操作间隔(高斯随机定时器)****步骤4:参数化关键数据(CSV驱动)****三、增强场景真实性的关键技巧****1.处理动态Token(关联提取)****2.模拟热点数据(80
- Gin 框架中如何实现 JWT 鉴权中间件
IsPrisoner
gin中间件golangJWT
在现代Web开发中,安全地验证用户身份是构建可靠应用程序的关键环节。JWT(JSONWebToken)作为一种流行的认证方式,因其简洁、高效和易于扩展等特性,被广泛应用于许多应用中。而Gin框架作为Go语言中一个高性能的HTTPWeb框架,在构建微服务和RESTfulAPI应用中表现卓越。将JWT鉴权集成到Gin框架中,可以为我们的应用提供更安全的用户认证与授权机制。本篇博客将深入探讨如何在Gin
- Redis + MQ:高并发秒杀的技术方案与实现
Java程序员 拥抱ai
架构springbootjavaredis状态模式数据库
前言在电商秒杀场景中,瞬间爆发的海量请求往往成为系统的生死考验。当并发量达到数万甚至数十万QPS时,传统数据库单表架构难以支撑,而Redis与消息队列(MQ)的组合凭借其高性能与可靠性,成为应对高并发秒杀的黄金方案。方案总览用户请求→前端生成Token→Redis执行Lua脚本(预扣减+防重+流水)→发送RocketMQ事务消息→ [本地事务校验Redis结果]→MQ消息确认(COMMIT/ROL
- 王兴兴,一个逆天改命的农村小伙
mingzhi61
黑客渗透测试开发语言网络安全
《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token=1860256701&lang=zh_CN5000篇网安资料库https://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247486065&idx=2&sn=b30ade8200e842743339d428f414475
- SpringBoot集成JWT实现简单登录Demo认证
一.JWT简介1.什么是JWT?JWT(JSONWebToken)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证;应用场景如用户登录。JWT详细讲解请见github:https://github.com/jwtk/jjwt2.为什么使用JWT?随着技术的发
- 代码随想录算法训练营day11(python版)|第五章 栈与队列part02| 150. 逆波兰表达式求值 239. 滑动窗口最大值347.前 K 个高频元素
清水泛轻舟
算法
目录150.逆波兰表达式求值题目代码注意点测试239.滑动窗口最大值(有点难度,可能代码写不出来,但一刷至少需要理解思路)题目思路代码347.前K个高频元素(有点难度,可能代码写不出来,一刷至少需要理解思路)题目思路代码总结150.逆波兰表达式求值本题不难,但第一次做的话,会很难想到,所以先看视频,了解思路再去做题题目链接/文章讲解/视频讲解:代码随想录题目给你一个字符串数组tokens,表示一个
- 2025年7月23日 AI 今日头条
tanak
AI日报信息差人工智能microsoft
阿里通义千问发布Qwen3-Coder,编程能力超越GPT-4.1阿里通义千问团队推出Qwen3-Coder-480B-A35B-Instruct,采用4800亿参数混合专家模型,支持256Ktoken上下文,并通过YaRN技术扩展至1Mtoken。在LiveBench、BigCodeBench等编程评测中,该模型表现优异,超越GPT-4.1,尤其在复杂代码调试和多语言支持上展现出强大能力。阿里计
- AAAI 2024 | TMFormer:用于缺失模态脑肿瘤分割的令牌合并Transformer
小白学视觉
医学图像处理论文解读transformer深度学习人工智能AAAI论文解读计算机顶会
论文信息题目:TMFormer:TokenMergingTransformerforBrainTumorSegmentationwithMissingModalitiesTMFormer:用于缺失模态脑肿瘤分割的令牌合并Transformer作者:ZheyuZhang,GangYang,YueyiZhang,HuanjingYue,AipingLiu,YunweiOu,JianGong,Xiaoy
- 【AIGC调研系列】敢于挑战Transformer的新架构Megalodon有什么优势
Zachary AI
AIGC调研相关AIGCtransformer架构
Megalodon作为一种新架构,其优势主要体现在以下几个方面:无限上下文处理能力:Megalodon能够处理无限上下文,这一点在多个证据中得到了强调[1][2][3]。这意味着它能够在处理长文本时保持高效和准确,而不会因为上下文长度的限制而降低性能。高性能:在2万亿token的训练任务中,Megalodon的性能超越了Llama2-7B,实现了非凡的效率[1][2][3]。这表明Megalodo
- 携程机票token1001 分析
wx a15018601872
pythonjavanodetoken携程tokentoken1001携程机票
声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!部分Python代码headers={'accept':'application/json','accept-language':'zh-CN,zh;q=0.9','cache-control':'no-cache','rms-to
- Transformer Masked loss原理精讲及其PyTorch逐行实现
MaskedLoss的核心原理是:在计算损失函数时,只考虑真实有意义的词元(token),而忽略掉为了数据对齐而填充的无意义的填充词元(paddingtoken)。这是重要的技术,可以确保模型专注于学习有意义的任务,并得到一个正确的性能评估。1.原理精讲为什么需要MaskedLoss?在训练神经网络时,我们通常会用一个批次(batch)的数据进行训练,而不是一次只用一个样本。对于自然语言处理任务,
- LLM面试题详解:拿到大厂Offer
ZhangJiQun&MXP
教学2024大模型以及算力2021AIpythontransformer深度学习人工智能
LLM面试题核心架构与基本概念Token化包含哪些内容,为什么它对LLM至关重要?Token化是将文本分解为更小单元(如单词、词的一部分或字符)的过程。它对LLM至关重要,因为LLM处理的是token的数值版本,通过Token化,模型可以处理多种语言、稀有词汇,保持词汇表大小可管理,提高计算速度和模型有效性。注意力机制在Transformer模型中如何运作?注意力机制通过计算查询(query)、键
- Authorization: Bearer是干什么的?底层原理是什么?
"Authorization:Bearer"是一种在HTTP请求头部中用于传递访问令牌(AccessToken)的常见格式。它用于在客户端和服务器之间进行身份验证和授权操作。底层原理是这样的:当客户端发送HTTP请求时,可以在请求头部中添加"Authorization"字段来传递访问令牌。"Bearer"是一种认证方案(authenticationscheme)的名称,用于指示后面的令牌是访问令牌
- JavaScript $.ajax() 最新用法详解
一、基础语法与核心参数$.ajax({url:"https://api.example.com/data",method:"GET",//推荐使用method替代typedata:{key:"value"},dataType:"json",headers:{"Authorization":"Bearertoken"},success:function(response){},error:funct
- JavaScript AJAX 实现,演示如何将 Token 添加到 Authorization
CATTLECODE
javascriptajaxokhttp
以下是一个完整的原生JavaScriptAJAX实现,演示如何将Token添加到Authorization头部的示例:基础实现html复制代码AJAXToken示例//获取当前用户的Token(实际应用中从安全存储获取)functiongetAuthToken(){//实际项目中应从localStorage/cookie获取return"eyJhbGciOiJIUzI1NiIsInR5cCI6Ik
- 【知识扫盲】per-token/per-channel/per-token量化
zjun3021
量化per-tokenper-channelter-tensor
per-token、per-channel和per-tensor量化的区别。这三种是模型量化中常见的不同粒度策略,主要区别在于它们应用量化的维度不同。以下是它们的详细对比:1.定义与核心区别量化类型量化维度主要应用对象计算粒度典型场景Per-Tensor整个张量权重/激活所有数据共享一组(scale,zero_point)简单硬件支持(如早期移动端)Per-Channel张量的每个通道权重(如卷积
- idea git token
modaoshi51991
运维知识vue3+ts项目实战搭建自己的网站intellij-ideagitjava
笔者今天push代码的时候遇到了一件事,idea向我索要token,不然就acessdenied正常来说是不需要输入token的,如果系统提示你需要token,说明你安装并启用了GitLab插件取消办法File->settings->plugins搜索GitLab取消勾选Apply应用这样正常输入git账号密码即可完成push
- idea从git拉取代码需要输入token问题解决
lvhui321
intellij-ideagitjava
idea使用git推送代码时,提示token问题,这是因为你的代码仓库是gitlab,然后打开修改代码后推送时,会默认使用gitlab插件,所以提示输入token解决方式就是把gitlab插件取消使用这样就好了。取消之后再进行拉取代码即可
- windows 11 下git软件提交正常,idea git提交总提示需要token
dotnet90
gitintellij-ideajava
在使用IntelliJIDEA进行Git操作时频繁提示输入Token,通常是因为IDEA默认启用了GitLab插件导致的身份验证冲突。以下是解决方法:解决方案禁用GitLab插件进入IDEA设置(File/Settings)选择"Plugins"搜索并禁用"GitLab"插件使用账号密码登录完成插件禁用后,重新进行Git操作(如pull/commit/push)时,系统会提示输入账号密码而
- github
路口游子
C++github
AccountrecoveryTokenverifiedandrequestsubmitted!What'snext?AmemberofGitHubSupportwillreviewyouraccountrecoveryrequestandfollowupwithinapproximately1-3businessdays.Additionalrequestssubmittedduringthis
- 我只发了几句话一个前端页面就出来了
叶常落
aigcweb
https://capable-monstera-66fdaa.netlify.app/遗憾在于token不够用
- Algorithm
香水浓
javaAlgorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
- mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
- Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvmjboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
- 文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
- 怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
- 判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
- 一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
- MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
- 一个简单的存储过程
asialee
mysql存储过程构造数据批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
- annot convert from HomeFragment_1 to Fragment
百合不是茶
android导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
- Weblogic10两种修改端口的方法
bijian1013
weblogic端口号配置管理config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
- mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
- 【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
- ajax 三种提交请求的方法
BlueSkator
Ajaxjqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
- mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
- 编程之美-最短摘要的生成
bylijinnan
java数据结构算法编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
- json数据解析及typeof
chengxuyuancsdn
jstypeofjson解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
- 流程系统设计的层次和目标
comsci
设计模式数据结构sql框架脚本
流程系统设计的层次和目标
 
- RMAN List和report 命令
daizj
oraclelistreportrman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
- 二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
- C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
- 自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
- MySQL查询语句练习题,测试足够用了
flyvszhb
sqlmysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
- 转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
- 让程序员少走弯路的14个忠告
jingjing0907
工作计划学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
- nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
- 第11章 动画效果(下)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- FAQ - SAP BW BO roadmap
blueoxygen
BOBW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
- 关于java堆内存溢出的几种情况
tomcat_oracle
javajvmjdkthread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
- Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D