以github登录认证为例,说明如何通过mvc三部分的配合,实现这个功能。

要实现的功能:首页判断用户是否登录,如果没有登录,显示登录界面,用户点击按钮进入github登录验证,并保存用户的信息,登录状态;如果已经登录,则显示用户的个人信息。

分析:用户github认证成功后,需要将用户的信息存入数据库中,便于增删查改,用户的登录状态存入缓存中(这里采用session)。

下面我们开始建数据库和数据表。

github验证成功后,用户的信息如下:

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;

LOCK TABLES `gl_user` WRITE;

name,email分别对应着获取到的login和email值,gid作为用户唯一标识使用‘github_’加上所获取到的id。用户认证成功后,可以设置昵称nickname,修改邮箱email。

数据库创建完成后,要在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创建,模型名对应去掉前缀的数据表名,可以在对应的模型文件中写一些对数据表增删查改的方法。

最新文章

  1. Python遇到字符编码出问题的一个相对万能的办法
  2. Mysql Join
  3. AngularJS的JSONP服务
  4. PL/SQL 存储函数和过程
  5. OpenStack三个节点icehouse-gre模式部署
  6. Java中的并发线程操作(只贴代码,内有注释)
  7. 鼠标悬浮图片时弹出透明提示图层的jQuery特效
  8. 【实习记】2014-08-27堆排序理解总结+使用typedef指代函数指针
  9. Deep Learning for NLP学习翻译笔记(2)
  10. nginx+tomcat+redis完成session共享
  11. Vultr新加坡机房速度怎么样?值得购买吗?最新评测!
  12. 使用swagger管理接口
  13. JS基础-第1天
  14. 使用Nginx反向代理和内容替换模块实现网页内容动态替换功能
  15. C# .net mvc web api 返回 json 内容,过滤值为null的属性
  16. Jmeter接口测试——跨线程组调用参数(token为例)
  17. 【问题收集·知识储备】Xcode只能选择My Mac,不能选择模拟器如何解决?
  18. Java分布式系统高并发解决方案
  19. unity代码添加动画,并传参数
  20. ASP.NET MVC Core的ViewComponent

热门文章

  1. HTML中关于图像和表格,链接等的知识
  2. javascript实现朴素贝叶斯分类与决策树ID3分类
  3. 【firefox】关闭firefox缓存
  4. 主流页面编辑器比对:TinyMCE VS FCKeditor
  5. 基于三台主机部署phpwind
  6. 性能测试——jmeter环境搭建,录制脚本,jmeter参数化CSV
  7. iframe中的模态框遮罩父窗口原理
  8. 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 Bug修复
  9. Luogu P1001 A+B Problem
  10. 手脱ASPack