獲取token
中的資料;
通過model
來同步資料庫。
使用者登入的時候我們已經使用者的一些基本資訊加密儲存到token
中,通過路由配置我們能簡單的去控制哪些介面需要登入,哪些介面不需要登入,但是如果再細化到使用者或者使用者角色,只是從路由層面就難以控制了,我們需要拿到使用者資訊,並將使用者資訊儲存在session
中,方便我們隨時取用。那要怎麼做呢?這裡我們需要編寫乙個中介軟體來實現這個功能。**如下:
module.exports = options => catch (error) ;
return;
}} else ;
return;}};
};這裡說明一下eggjs
的外掛程式機制,如果你在config.default.js
中配置:
config.middleware = ['eggjwt'];
那麼,這個外掛程式將作用於所有的路由,除非有特殊配置,但是這裡我們不需要,所以不加這一行**。我們按需配置:
router.get('/', controller.home.index);
router.post('/createuser', jwt, controller.user.createuser);
router.get('/getusers', jwt, controller.user.getusers);
router.post('/register', controller.user.register);
router.post('/login', controller.user.login);
};我們手動引入後按需配置即可。
這個時候我們去訪問配置了jwt的介面,就會執行外掛程式,解析token
,並將解析結果儲存到session
裡。我們修改一下user controller
的**試一下:
async getusers() ;
}
配置好token後請求localhost:7001/getusers
,資料能正常返回,同時控制台列印出了:
**********=
可以看到這時我們就拿到了token
裡儲存的資料。
按照我們現在的**,如果我們需要調整model
中的字段,我們需要修改model
檔案,然後再寫指令碼同步修改資料庫中的字段,這樣太麻煩了。幸好,sequelize
提供了乙個方法讓我們可以根據model
去同步資料庫裡的字段:
user.sync()
,那麼要在什麼時候去執行呢?我們想在每次服務啟動時去同步資料庫字段,同時eggjs也提供了生命週期供我們使用:
}configwillload()
async didload()
async willready()
async didready()
async serverdidready()
}這時,我們在user model
中新增乙個字段:nickname: string(10)
,然後重啟一下服務,開啟資料庫看看user
表,果然多了乙個nickname
的列。這個功能極大地方便了我們去同步model
與資料庫字段,但是操作的時候也要小心,不要誤刪字段。
從零開始學習敏捷開發(一)
一 敏捷開發 歷史背景 20世紀60年代 軟體作坊,軟體規模小,以作坊式開發為主 70年代 軟體危機,硬體飛速發展,軟體規模和複雜度激增,引發軟體危機 80年代 軟體過程控制,引入成熟生產製造管理方法,以 過程為中心 分階段來控制軟體開發 瀑布模型 一定程度上緩解了軟體危機 90年代 重型過程,軟體...
PyTorch從零開始(一)
之前嘗試過tenano,caffe,keras,tensorflow,這幾個我個人最喜歡的還是tensorflow,因為是google出品,技術崇拜,文件很全,並且我看的deepmind的 都是用的tensorflow框架。之前看的目標檢測的 一般用caffe的很多,人臉識別方面也是caffe是主流...
SpringBoot從零開始(一)
上來先看的這篇部落格 idea新建乙個springboot mybatis mysql專案,以及遇到的問題分享。在其中第9步自動生成的過程中,出現了錯誤如下 the server time zone value is unrecognized or represents more than one ...