如何在RESTful Web服务中使用mysql实现基于表单的登录?

时间:2014-09-19 08:37:01

标签: web-services rest

我正在使用phonegap(jquery mobile framework)和jersey rest java webservice开发混合移动应用程序。

如何使用mysql和rest webservice登录和注销,并在每个页面上维护特定用户的会话,如传统的webapplication(在每个页面上获取用户名)。

我完全被卡住。任何人都提供示例或任何解决方案。

2 个答案:

答案 0 :(得分:1)

你可以用以下方式做。

创建会话表包含列[id,token,userid,loggedintime]

在登录时拨打/rest/user/login?username=uname&password=pwd之类的休息 将令牌返回给用户。在客户端维护该令牌。您可以使用移动设备支持的cookie或sessionstorage。

现在使用path /*创建一个过滤器,以便每个请求都通过它,并在过滤器中检查用户令牌是否有效,如果不是重定向到登录。您可以在queryparampathparam中将该令牌显式传递给服务器。

登出会话表中的删除条目,并再次将用户重定向到登录页面。

有很多方法可以做到这一点,但这是一种更简单的方法。

答案 1 :(得分:1)

很简单,您将用户名和密码存储在客户端中,并随每个请求发送。 (在服务器端,您可以拥有(username, password) -> (identity, permissions)内存缓存,这可以加快速度。)您需要一个安全的连接:HTTPS。没有它你就不会做REST认证。

登录很简单,您向用户显示提示,她可以在其中提供用户名和密码,以便您可以将它们存储在客户端的内存中。通过注销,您只需关闭客户端(通过浏览器导航),或从内存中删除用户名和密码。 (如果没有在客户端进行适当的加密,永久存储用户名和密码是不安全的。)