我正在我的应用程序和 MySQL之间使用 Jersey 开发一个 Restful Web 服务。Android, iPhone
我还使用Hibernate
将数据映射到数据库。
我有一个 sessionId(密钥)。它是在用户登录系统时生成的。
在User
课堂上:
public Session daoCreateSession() {
if (session == null) {
session = new Session(this);
} else {
session.daoUpdate();
}
return session;
}
在Session
课堂上:
Session(User user) {
this.key = UUID.randomUUID().toString();
this.user = user;
this.date = new Date();
}
void daoUpdate() {
this.key = UUID.randomUUID().toString();
this.date = new Date();
}
当用户成功登录系统时,我将此 sessionId 发送到移动应用程序客户端。然后,当我想根据登录用户从数据库中获取一些信息时,我会检查此会话密钥作为每个请求的身份验证in the REST Services
。
例如,对于用户参与的项目列表,我使用client.GET(SERVER_ADDRESS/project/get/{SessionID})
位于client.GET(SERVER_ADDRESS/project/get/{username})
.
如果它不是有效的会话密钥,我将向客户端发送 403 禁止代码。你也可以看看这里
问题是我不确定我的方法。cons
对于泽西岛和移动应用程序,您如何看待这种方法?我仍然不知道这种Session key
方法对我来说是否是个好主意。