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