getToken接口修改

This commit is contained in:
lingwentao 2023-08-03 12:38:09 +08:00
parent 57267576ca
commit 40a4619003
7 changed files with 112 additions and 47 deletions

View File

@ -10,6 +10,20 @@ class ClientMapper {
);
}
async getClientToken(clientId: string) {
return await db(
'select a.token,TIMESTAMPDIFF(MINUTE,NOW(),a.expires_time) AS expiresIn from szja_client_token a where client_id = ? and TIMESTAMPDIFF(MINUTE,NOW(),a.expires_time) > 0',
[clientId],
);
}
async getClientTokenInfor(clientId: string) {
return await db(
'select * from szja_client_token where client_id = ?',
[clientId],
);
}
async getClientByRefId(entId: string) {
return await db('select * from szja_client_info where reference_id = ?', [
entId,
@ -26,6 +40,13 @@ class ClientMapper {
]);
}
async updateClientToken(clientId: string, token: string, expireTime: Date) {
return db(
'update szja_client_token set token = ?, expires_time= ?, delete_time= ? where client_id = ?',
[token, expireTime, expireTime, clientId]
);
}
async addClientInfoByObj(info: IClient) {
return await db('insert into szja_client_info set ?', [info]);
}

View File

@ -37,6 +37,6 @@ async function bootstrap() {
// app.useGlobalInterceptors(new TransformInterceptor());
// 异常过滤器
app.useGlobalFilters(new HttpExceptionFilter(), new AllExceptionsFilter());
await app.listen(60036, '0.0.0.0');
await app.listen(60031, '0.0.0.0');
}
bootstrap();

View File

@ -21,7 +21,7 @@ export class MpController {
*/
@Post('/api/v1/getToken')
getToken(@Body() { clientId, clientSecret }) {
return this.mpService.getToken({ clientId, clientSecret });
return this.mpService.getToken(clientId, clientSecret);
}
/**

View File

@ -16,26 +16,60 @@ export class MpService {
* @param next
* @returns
*/
async getToken({ clientId, clientSecret }) {
async getToken(clientId, clientSecret) {
console.log('getToken:', clientId, clientSecret);
const info = await clientMapper.getClientInfo(clientId, clientSecret);
if (!info?.length) {
// 不存在平台数据 直接返回
return Base.error();
}
const token = v4().replace(/-/g, '');
const expireTime = new Date(new Date().valueOf() + 360 * 60 * 1000);
// token应用服务平台数据入库
await Promise.all([
clientMapper.addClientToken(clientId, token, expireTime),
clientMapper.addClientInfo(clientId, clientSecret),
]);
return Base.success({
token: token,
expiresIn: 360,
});
const clientToken = await clientMapper.getClientToken(clientId);
if (clientToken?.length) {
//有且没过期
return Base.success({
token: clientToken[0].token,
expiresIn: clientToken[0].expiresIn,
});
} else {
//没有token有两种情况
const token = v4().replace(/-/g, '');
const expireTime = new Date(new Date().valueOf() + 360 * 60 * 1000);
const clientTokenInfor = await clientMapper.getClientTokenInfor(clientId);
if (clientTokenInfor?.length) {
//有该clientId的数据说明是token过期更新token
const result = await clientMapper.updateClientToken(
clientId,
token,
expireTime,
);
if (result.affectedRows) {
return Base.success({
token: token,
expiresIn: 360,
});
} else {
return Base.error('更新token失败');
}
} else {
//没有该clientId的数据说明是新数据要存库
const result = await clientMapper.addClientToken(
clientId,
token,
expireTime,
);
if (result.affectedRows) {
return Base.success({
token: token,
expiresIn: 360,
});
} else {
return Base.error('Token入库出错');
}
}
}
}
// /**
// * 查询应用服务用户信息权限
// * @param req

View File

@ -40,10 +40,10 @@ export class OpenDataService {
token,
expireTime,
);
if (result[0]) {
if (result.affectedRows) {
return Base.success({
token: token,
expiresIn: expireTime,
expiresIn: 360,
});
} else {
return Base.error('更新token失败');
@ -55,7 +55,7 @@ export class OpenDataService {
token,
expireTime,
);
if (result[0]) {
if (result.affectedRows) {
return Base.success({
token: token,
expiresIn: 360,

View File

@ -8,7 +8,7 @@ export class PlatformController {
@Post('/api/v1/getToken')
getToken(@Body() { clientId, clientSecret }) {
return this.platformService.getToken({ clientId, clientSecret });
return this.platformService.getToken(clientId, clientSecret);
}
@Post('/api/v1/getUserInfoByTicket')

View File

@ -13,43 +13,53 @@ export class PlatformService {
/**
* 访
* @param req
* @param res
* @param next
*/
async getToken({ clientId, clientSecret }) {
console.log(
'全国服务平台获取访问令牌--getToken--传入参数:',
clientId,
clientSecret,
);
// const result = await Axios(`${config.zjgUrl}/rest/common/getUserToken`, {
// code,
// clientId,
// clientSecret
// })
// if (result) {
// return Base.success({
// access_token: result.access_token
// })
// }
async getToken(clientId, clientSecret) {
console.log('getToken:', clientId, clientSecret);
const info = await clientMapper.getClientInfo(clientId, clientSecret);
if (!info?.length) {
// 不存在平台数据 直接返回
return Base.error();
}
const token = v4().replace(/-/g, '');
const expireTime = new Date(new Date().valueOf() + 360 * 60 * 1000);
// token应用服务平台数据入库
await Promise.all([
clientMapper.addClientToken(clientId, token, expireTime),
clientMapper.addClientInfo(clientId, clientSecret),
]);
return Base.success({
token: token,
expiresIn: 360,
});
const clientToken =await clientMapper.getClientToken(clientId)
if (clientToken?.length){
//有且没过期
return Base.success({
token: clientToken[0].token,
expiresIn: clientToken[0].expiresIn,
});
}else {
//没有token有两种情况
const token = v4().replace(/-/g, '');
const expireTime = new Date(new Date().valueOf() + 360 * 60 * 1000);
const clientTokenInfor=await clientMapper.getClientTokenInfor(clientId)
if (clientTokenInfor?.length){
//有该clientId的数据说明是token过期更新token
let result=await clientMapper.updateClientToken(clientId,token,expireTime)
if (result.affectedRows){
return Base.success({
token: token,
expiresIn: 360,
})
}else {
return Base.error('更新token失败')
}
}else {
//没有该clientId的数据说明是新数据要存库
let result=await clientMapper.addClientToken(clientId, token, expireTime)
if (result.affectedRows){
return Base.success({
token: token,
expiresIn: 360,
});
}else {
return Base.error('Token入库出错')
}
}
}
}
async getUserInfoByTicket({ ticket, appCode, type, hccId }) {
// 解密ticket
console.debug(