不知不觉马上就要大三下学期了,也该为实习做准备了。。。
这几天抽空做了一个稍微跟招聘有些联系的东西,就是一个宣讲会信息展示的webapp,招聘信息爬取自我们学校的就业信息网,那个网站界面乱而且我不关心的信息也多,我觉得自己做一个比较个性化的相关项目也很有必要,所以我在爬虫的基础上扩展了以下,后端定时自动爬取宣讲会信息,并且在webapp上展示并且提供用户注册登陆,除此之外最有用的是登陆的用户可以在这上关注任何一个宣讲会,关注之后在宣讲会宣讲时间前一个小时,后端会自动发送邮件提醒用户某某宣讲会将要开始了(有么有一丝暖暖的赶脚 哈哈哈)
应用架构
前端
- Vue2.0 全家桶
- sui mobile(话说这个项目已经好久不更新了,我猜很有可能淘宝前端er都在一心在weex上)
后端
- Spring + spring mvc + mybatis
- spring-data-redis (实现基于redis的token权限Restful登陆接口)
- spring mail
- MySql
部分截图:
我会把项目放到我自己的github上,欢迎交流,之前的博客中我讲过定时任务和发送邮件的实现,所以这里我只讲一下Token接口的实现:
token验证接口:
验证的流程如下:
1、用户提交用户名和密码,后端会由此随机生成一个token返回给客户端
2、用户之后的所有跟用户权限相关的请求都会携带这个token值一起发送给后端,后端根据这个token的有效状态来确认用户的登陆状态。
3、token具有时效性,长期未操作token会失效。(我这里基于redis来实现储存和有效期控制)
Show me the code
token实体类
public class TokenModel {
private long userId;
//随机生成uuid
private String token;
public TokenModel(long userId, String token) {
this.userId = userId;
this.token = token;
}
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
}
token相关操作的接口声明:
public interface TokenManager {
/**
* 创建一个token关联上指定用户
* @param userId 指定用户的id
*