以github登陸認證爲例,說明如何經過mvc三部分的配合,實現這個功能。html
要實現的功能:首頁判斷用戶是否登陸,若是沒有登陸,顯示登陸界面,用戶點擊按鈕進入github登陸驗證,並保存用戶的信息,登陸狀態;若是已經登陸,則顯示用戶的我的信息。mysql
分析:用戶github認證成功後,須要將用戶的信息存入數據庫中,便於增刪查改,用戶的登陸狀態存入緩存中(這裏採用session)。git
下面咱們開始建數據庫和數據表。github
github驗證成功後,用戶的信息以下:sql
mysql的安裝和使用方法這裏就不在詳細說明了,根據thinkjs的規範,數據表要有個統一的前綴,這裏就簡單取個'gl_'(github log in縮寫‘’)。新建一個數據庫githublog,在這個數據庫中新建一個數據表gl_user,存儲數據信息,表結構以下。數據庫
DROP TABLE IF EXISTS `gl_user`;緩存
CREATE TABLE `gl_user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(256) NOT NULL DEFAULT '' COMMENT '用戶名稱',
`nickname` varchar(11) NOT NULL DEFAULT '' COMMENT '用戶暱稱',
`gid` varchar(256) NOT NULL DEFAULT '' COMMENT '第三方社交賬號ID',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '建立時間',
`email` varchar(256) DEFAULT NULL COMMENT '用戶郵箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;session
LOCK TABLES `gl_user` WRITE;mvc
name,email分別對應着獲取到的login和email值,gid做爲用戶惟一標識使用‘github_’加上所獲取到的id。用戶認證成功後,能夠設置暱稱nickname,修改郵箱email。spa
數據庫建立完成後,要在thinkjs項目中進行配置src/common/config/db.js文件
使用本地數據庫的話host就是127.0.0.1,port默認是3306,database就是剛剛建立的githublog,user和password是mysql的用戶名和密碼,前綴是githublog數據庫下數據表的前綴‘gl_’。(https://thinkjs.org/zh-cn/doc/2.2/model_config.html)
配置好以後,建立對應數據表的模型,參照https://thinkjs.org/zh-cn/doc/2.2/model_intro.html建立,模型名對應去掉前綴的數據表名,能夠在對應的模型文件中寫一些對數據表增刪查改的方法。