egg框架搭建好
在router.js中配置幾個(gè)路由
常用的配置:config文件夾下
1.關(guān)閉安全策略痴鳄,才可以使用post請(qǐng)求
2.調(diào)大上傳限制 防止大文件圖片上傳不了
3.jwt 令牌的配置項(xiàng)之一
// config.default.js
const config = exports = {
security: {//關(guān)閉安全策略 開啟post之旅
csrf: {
enable: false,
},
},
bodyParser: {//解除文件上傳大小限制
jsonLimit: '100mb',
formLimit: '100mb',
},
jwt: { //令牌配置項(xiàng)
secret: "123456"
}
};
config.middleware = ['jwtErr'];
plugin.js配置
1.第一個(gè)是關(guān)于mysql的插件龄坪,很方便
2.令牌配置項(xiàng)之一
3.此文件里的package的值都是依賴,要下載
module.exports = {
mysql: {
enable: true,
package: 'egg-mysql',
},
jwt: {
enable: true,
package: 'egg-jwt',
}
};
app文件夾下新建立文件夾middleware
內(nèi)部新建js jwtErr.js
在第一塊代碼塊中 會(huì)注冊(cè)這個(gè)js
module.exports = (options, app) => {
return async function (ctx, next) {
try {
await next();
} catch (e) {
ctx.status = 401;
ctx.body = {
msg: '身份過(guò)期,重新登錄',
code: -1,
}
}
}
}
在需要的路由上設(shè)置app.jwt
設(shè)置了的路由會(huì)根據(jù)令牌的有效時(shí)間對(duì)你次路由內(nèi)的請(qǐng)求做判斷,失效就不能請(qǐng)求,返回401,需重新登錄孤荣,獲取新的token值
router.get('/getaside', app.jwt, controller.home.getaside.getaside);//獲取后臺(tái)側(cè)欄數(shù)據(jù)
注意:你發(fā)的請(qǐng)求必須有請(qǐng)求頭,屬性為Authorization
,值是登錄成功獲取的token
所以有必要封裝有個(gè)axios须揣,官方網(wǎng)站上有請(qǐng)求攔截的介紹盐股,只需return一個(gè)header頭,帶上egg-jwt的專屬請(qǐng)求頭即可
還有一點(diǎn):egg-jwt的創(chuàng)建令牌方法:
const token = app.jwt.sign({ foo: 'bar' }, app.config.jwt.secret);
// 返回給前端 存本地 發(fā)請(qǐng)求時(shí)帶上請(qǐng)求頭
這個(gè)令牌第一個(gè)參數(shù)可以把賬號(hào)密碼的對(duì)象穿進(jìn)去耻卡,{user:admin,pwd:123456},就像這樣
返回給前端 存本地 發(fā)請(qǐng)求時(shí)帶上請(qǐng)求頭
返回給前端 存本地 發(fā)請(qǐng)求時(shí)帶上請(qǐng)求頭
返回給前端 存本地 發(fā)請(qǐng)求時(shí)帶上請(qǐng)求頭