提交 0a67ff34 编写于 作者: Y yinpengxiao

修改提交代码

上级 83bea10b
......@@ -27,7 +27,7 @@ var server = http.createServer(app.callback());
server.listen(port);
server.on('error', onError);
console.log('端口:', process.env.PORT || 3000);
// console.log('端口:', process.env.PORT || 3000);
server.on('listening', onListening);
/**
......
/*
* @Author: your name
* @Date: 2021-08-30 10:58:19
* @LastEditTime: 2021-09-03 16:54:53
* @LastEditTime: 2021-09-06 16:24:05
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \koa2-test-api\app.js
......@@ -17,7 +17,7 @@ require('module-alias/register');
const InitManager = require('@models/core/init');
const catchError = require('@models/middleWares/exception');
//全局错误捕获
app.use(catchError)
// app.use(catchError)
// error handler
onerror(app)
// middlewares
......
/*
* @Author: 尹鹏孝
* @Date: 2021-09-03 09:15:37
* @LastEditTime: 2021-09-03 16:45:46
* @LastEditTime: 2021-09-06 15:13:47
* @LastEditors: Please set LastEditors
* @Description: redis缓存
* @FilePath: \koa2-test-api\src\cache\_redis.js
......@@ -33,7 +33,7 @@ function set(key, val, timeout = 60 * 60) {
if (typeof val === 'object') {
val = JSON.stringify(val);
}
console.log('输出要设置的内容:', Buffer.from(val, 'utf-8'));
// console.log('输出要设置的内容:', Buffer.from(val, 'utf-8'));
redisClient.set(key, Buffer.from(val, 'utf-8'));
redisClient.expire(key, timeout);
}
......@@ -54,7 +54,7 @@ function get(key) {
return
}
try {
console.log('输出redis查询的内容:', JSON.parse(val));
// console.log('输出redis查询的内容:', JSON.parse(val));
resolve(JSON.parse(val))
} catch (error) {
resolve(val);
......
/*
* @Author: 尹鹏孝
* @Date: 2021-08-31 15:11:10
* @LastEditTime: 2021-09-03 16:11:35
* @LastEditTime: 2021-09-06 16:47:17
* @LastEditors: Please set LastEditors
* @Description: 用户信息相关接口
* @FilePath: \koa2-test-api\src\controller\user.js
......@@ -65,10 +65,11 @@ async function registry({
console.log('用户不存在,创建成功', result);
if (result.code == 200) {
if (result) {
result.code = 200;
return result;
} else {
return result;
return {};
}
}
......@@ -77,11 +78,16 @@ async function setting({
password,
newPassword
}) {
console.log('controller的数据::', {
user_name,
password
});
let result = await updateUser({
user_name,
password,
newPassword
password
});
console.log('更新后结果:', result.dataValues);
return result;
//service
}
......
/*
* @Author: 尹鹏孝
* @Date: 2021-08-31 13:20:40
* @LastEditTime: 2021-09-03 11:51:52
* @LastEditTime: 2021-09-06 16:26:04
* @LastEditors: Please set LastEditors
* @Description: 异常处理
* @FilePath: \koa2-test-api\src\core\http-exception.js
*/
const {
set
} = require('../cache/_redis.js');
class HttpException extends Error {
constructor(msg = '服务器异常', errorCode = 10000, code = 400) {
super()
......@@ -39,6 +42,8 @@ class AuthFailed extends HttpException {
this.msg = msg || '授权失败';
this.errorCode = errorCode || 10002;
this.code = 401;
set(user_name, '');
}
}
......@@ -69,6 +74,15 @@ class Success extends HttpException {
}
}
class settingUserFailed extends HttpException {
constructor(msg, errorCode) {
super();
this.msg = msg || '两次密码一致,请重新设置密码';
this.errorCode = errorCode || 10005;
this.code = 400;
}
}
module.exports = {
HttpException,
ParameterException,
......@@ -76,5 +90,6 @@ module.exports = {
NotFound,
AuthFailed,
Forbidden,
CreateUserFailed
CreateUserFailed,
settingUserFailed
}
\ No newline at end of file
/*
* @Author: 尹鹏孝
* @Date: 2021-08-31 13:46:30
* @LastEditTime: 2021-09-03 16:48:54
* @LastEditTime: 2021-09-06 16:57:56
* @LastEditors: Please set LastEditors
* @Description: 授权中间件
* @FilePath: \koa2-test-api\src\middleWares\auth.js
......@@ -23,7 +23,7 @@ class Auth {
*/
return new Promise((resolve, reject) => {
var userInfo = jwt.verify(token.split(' ')[1], global.config.security.secretKey);
console.log('ver获取用户信息:', userInfo);
// console.log('ver获取用户信息:', userInfo);
resolve(userInfo);
}).catch(err => {
console.log('ver-fail:', err);
......@@ -35,7 +35,7 @@ class Auth {
get m() {
return async (ctx, next) => {
const userToken = await this.verToken(ctx.request.header.authorization);
console.log('通过token获取用户信息:', userToken);
let errMsg = 'token不合法';
if (!userToken || !userToken.user_name) {
throw new global.errs.Forbidden(errMsg);
......
/*
* @Author: 尹鹏孝
* @Date: 2021-08-30 10:58:19
* @LastEditTime: 2021-09-03 16:50:51
* @LastEditTime: 2021-09-06 16:57:27
* @LastEditors: Please set LastEditors
* @Description: 用户接口
* @FilePath: \koa2-test-api\src\routes\api\users.js
......@@ -9,7 +9,7 @@
const {
login,
registry,
findUser
setting
} = require("../../controller/user.js");
const router = require('koa-router')()
const {
......@@ -31,6 +31,8 @@ router.post('/login', async (ctx, next) => {
user_name,
password
} = ctx.request.body;
console.log('输出原始密码:', password);
console.log('输出加密后密码', enCrypto(password));
const result = await login({
user_name,
password: enCrypto(password)
......@@ -68,8 +70,7 @@ router.post('/register', async (ctx, next) => {
password: enCrypto(password),
scope
});
console.log(newUser);
if (newUser.errorCode == 200) {
if (newUser.code == 200) {
return ctx.body = new global.errs.Success(newUser);
} else {
return ctx.body = new global.errs.CreateUserFailed(newUser);
......@@ -82,15 +83,19 @@ router.post('/setting', new auth().m, async (ctx, next) => {
password
} = ctx.request.body;
set(user_name, '');
let newUser = await findUser({
console.log('当前用户:', {
user_name,
password: enCrypto(password)
});
let newUser = await setting({
user_name,
password: enCrypto(password)
});
console.log('当前用户', newUser);
if (newUser.errorCode == 200) {
if (newUser.id) {
return ctx.body = new global.errs.Success(newUser);
} else {
return ctx.body = new global.errs.CreateUserFailed(newUser);
return ctx.body = new global.errs.settingUserFailed(settingUserFailed);
}
});
......
/*
* @Author: 尹鹏孝
* @Date: 2021-08-31 15:01:10
* @LastEditTime: 2021-09-03 16:53:06
* @LastEditTime: 2021-09-06 16:47:41
* @LastEditors: Please set LastEditors
* @Description: 查询用户
* @FilePath: \koa2-test-api\src\service\user.js
......@@ -36,12 +36,16 @@ async function findUser({
user_name: user_name || '',
}
}
console.log();
//请求先去redis里面查询,如果有而且没过期就返回,不用再去数据库查询,如果过期就去数据库查询,然后再存储到redis中
let result = null;
result = await get(user_name);
console.log('在redis里面查询当前登录用户:', result);
if (result == null) {
console.log('在redis里面查询当前登录用户:', result == null);
console.log('输出user:',
user);
if (result == null || result == '') {
result = await User.findOne(user);
console.log('输出用户:', result);
if (result) {
result = result.dataValues;
//用户第一次登陆首查询后首先存储在redis中
......@@ -73,7 +77,7 @@ async function createUser({
scope
});
console.log('创建用户是否成功', user);
return user
return user.dataValues;
} catch (error) {
console.log('创建用户失败', error.errors[0].ValidationErrorItem);
return {
......@@ -89,26 +93,34 @@ async function createUser({
*/
async function updateUser({
user_name,
password,
newPassword
password
}) {
let updateData = {};
if (newPassword) {
updateData.password = newPassword;
}
//拼接查询条件
let whereData = {
user_name: user_name
let user = {
attributes: ['user_name', 'id', 'scope', 'createdAt', 'updatedAt']
};
if (password) {
whereData.password = password;
user.where = {
user_name
}
let myUer = await User.findOne(user);
if (myUer.password !== password) {
myUer.password = password;
let result = await myUer.save();
console.log('输出结果:', result);
set(result.user_name, JSON.stringify(result.dataValues));
return result.dataValues
} else {
return {
id: null,
msg: '密码和原始密码一致'
}
}
const updateUser = await User.update(updateData, {
where: whereData
});
console.log('输出更新:', updateUser);
}
module.exports = {
findUser,
......
/*
* @Author: 尹鹏孝
* @Date: 2021-09-03 15:02:26
* @LastEditTime: 2021-09-03 16:53:33
* @LastEditTime: 2021-09-06 15:14:39
* @LastEditors: Please set LastEditors
* @Description: 密码加密
* @FilePath: \koa2-test-api\src\utils\cropto.js
......@@ -9,7 +9,7 @@
const CryptoJS = require('crypto-js');
const config = require("../config/config.js")
console.log(config);
// console.log(config);
/**
* CryptoJS的MD5加密
* @param {string} key MD5加密
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册