我在云端托管了一个基于J2EE
的销售点的Web应用程序,数据库正在使用postgresql
。现在我正在为Point of Sales构建一个Android应用程序。对于数据sync
,我已经阅读了很多关于如何创建SyncAdapter
等但很少关于服务器端开发的内容。我的第一个问题:
如何创建身份验证令牌?谁将创建此AuthToken
?我的服务器端RESTful
webservice或设备SyncAdapter
本身?谁应该启动AuthToken
- 设备或服务器webservice
到期?
目前,我的网络应用程序获得了许多用户级权限。当数据来自设备同步时,我需要在同步之前检查用户权限。我是否需要在服务器端webservices
内自定义写入这些权限检查?
答案 0 :(得分:1)
简而言之,服务器负责创建AuthToken。
为了更好地理解,您应该阅读OAuth2 specification。虽然您可以编写自己更简单的解决方案,但我建议您使用OAuth2来避免一些陷阱。在您的情况下,身份验证授权类型“Resource Owner Password Credentials”似乎是最合适的。
Apache Oltu是一个在Java中实现OAuth2的框架,但您仍需要处理一些事情,例如持久性你自己的代币。
是的,您必须检查服务器端的权限。不要相信客户!
除此之外,您可以通过在Android中使用不同的令牌类型来更严格地限制应用程序。例如:当您从服务器应用程序和Android应用程序访问Web服务时,您可以根据令牌类型(Android与内部)区分权限。或者,您可以为应用程序的用户提供一个选项,限制应用程序仅访问读取操作。