我正在使用phonegap(jquery mobile framework)和jersey rest java webservice开发混合移动应用程序。
如何使用mysql和rest webservice登录和注销,并在每个页面上维护特定用户的会话,如传统的webapplication(在每个页面上获取用户名)。
我完全被卡住。任何人都提供示例或任何解决方案。
答案 0 :(得分:1)
你可以用以下方式做。
创建会话表包含列[id,token,userid,loggedintime]
在登录时拨打/rest/user/login?username=uname&password=pwd
之类的休息
将令牌返回给用户。在客户端维护该令牌。您可以使用移动设备支持的cookie或sessionstorage。
现在使用path /*
创建一个过滤器,以便每个请求都通过它,并在过滤器中检查用户令牌是否有效,如果不是重定向到登录。您可以在queryparam
或pathparam
中将该令牌显式传递给服务器。
登出会话表中的删除条目,并再次将用户重定向到登录页面。
有很多方法可以做到这一点,但这是一种更简单的方法。
答案 1 :(得分:1)
很简单,您将用户名和密码存储在客户端中,并随每个请求发送。 (在服务器端,您可以拥有(username, password) -> (identity, permissions)
内存缓存,这可以加快速度。)您需要一个安全的连接:HTTPS。没有它你就不会做REST认证。
登录很简单,您向用户显示提示,她可以在其中提供用户名和密码,以便您可以将它们存储在客户端的内存中。通过注销,您只需关闭客户端(通过浏览器导航),或从内存中删除用户名和密码。 (如果没有在客户端进行适当的加密,永久存储用户名和密码是不安全的。)