通用模块-user model
用户模块
开发
出发点想做一个公共通用的模块仓库,用户和权限系统往往是一个通用模块,本篇先介绍用户模块。
用户模块主要功能是用户登录、注册、密码找回等功能(是不是几乎所有网站都有这个功能)。其中涉及到安全验证、单点登录、无状态token等知识点。我在git上找到两个star都很多的开源项目来参考。基础的技术选型为:springboot、mybatis、springMVC、redis、mysql,使用maven做项目管理,其中还涉及到了redisson、JWT(auth0)、一个时间lib joda-time、json解析工具fastjson、单元测试等依赖。
由于我经常在三台电脑写代码(家里一台pc、外出携带mbp、公司一台pc),所以又把redis和mysql远程部署到阿里云上,这样可以只关注业务开发。redis是3.x,mysql是5.x。
git仓库
上面说到需要在3台机器上开发,所以需要一个git仓库,开始第一反应自己搭一个gitlib,无奈我的ECS配置2G,按了几次卡死机,由于还需要跑mysql和redis,就用了gitee作为仓库。gitee仓库也很好配置,免费版的配置就足够用了。首先在gitee官网配置好了仓库路径、权限、人员。
接着在intellij上下载gitee插件,这里要说的是,没有这个插件也是可以的。在git官网下载一个最新版,安装好后,intellij上配置git的路径,配置好后继续配置git的远程仓库url,也就是上面在gitee上的url,会提示让你输入gitee的账号密码。按照gitee的说法,还需要配置git的用户名和邮箱
git config --global user.name username
git config --global user.email [email protected]
之后就可以提代码了,先git里commit,然后在push到远程仓库。提代码只需要注意不要多提杂项文件即可。
远程redis和mysql
说到redis,上次搭完redis没有配置密码,导致被攻击,这次长心眼了,先设置一个复杂的密码。不过要是让阿里云上的redis可以远程访问需要配置三个地方:配置文件注释点
#bind 127.0.0.1
protected-mode no
daemonize yes
然后在阿里云ECS的安全策略中打开6379端口就行了。有几个命令,记录一下,查看redis运行状态,重启redis服务。
systemctl restart redis
systemctl status redis
mysql按起来不是太费劲
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
sudo yum install mysql-server
mysql -u root -p
同样需要2个配置来保证远程可访问:
grant all privileges on . to ‘root’@’%’ identified by ‘xxxxx(密码)’;
ECS安全策略打开3306端口
之后用navicat连接即可。CentOS7下安装mysql5.6修改字符集为utf8并开放端口允许远程访问