3

我有一个基于运行J2EE的 Web 应用程序,用于托管在云中的销售点,并且数据库正在使用postgresql. 现在我正在为销售点构建一个安卓应用程序。对于数据sync,我已经阅读了很多如何创建SyncAdapter等内容,但关于服务器端开发的内容却很少。我的第一个问题:

  1. 如何创建身份验证令牌?谁来创造这个AuthToken?我的服务器端RESTful网络服务或设备SyncAdapter本身?AuthToken谁应该启动设备或服务器的到期webservice

  2. 目前我的网络应用程序获得了许多用户级别的权限。当数据将来自设备进行同步时,我需要在同步前检查用户权限。我是否需要在我的服务器端自定义编写这些权限检查webservices

4

1 回答 1

1
  1. 简而言之,服务器负责创建 AuthToken。

    为了更好地理解,您应该阅读OAuth2 规范。虽然您可以编写自己的更简单的解决方案,但我建议您使用 OAuth2 来避免一些陷阱。在您的情况下,身份验证授权类型“资源所有者密码凭据”似乎最合适。

    Apache Oltu是一个用于在 Java 中实现 OAuth2 的框架,但您仍然需要自己处理一些事情,例如令牌的持久性。

  2. 是的,您必须检查服务器端的权限。不要相信客户!

    除此之外,您可以通过在 Android 中使用不同的令牌类型来更严格地限制应用程序。例如:当您从服务器应用程序和 Android 应用程序访问 Web 服务时,您可以根据令牌类型(Android 与内部)区分权限。或者,您可能会为应用程序的用户提供一个选项,将应用程序的访问权限限制为仅读取操作。

于 2013-12-04T13:27:59.780 回答