0

我正在构建一个如下工作的应用程序:

作为唯一一个后端,我有一个使用 Symfony Framework 2.3.2 + FOSRESTBundle 构建的 REST API(仅限 JSON)。

此 API 最初将有两个客户端:

  • 在 Android 设备上运行的应用程序;
  • 使用 AngularJS 构建的 Web 应用程序,运行在与 API 相同的服务器上。

我将注册可以使用我的应用程序的公司,每个公司都可以使用他们的角色注册自己的用户,这些用户只能通过通常的电子邮件/密码表单访问网络应用程序。

这些公司还可以注册有限数量的 Android 设备,通过其 IMEI(移动设备的国际唯一识别码)识别它们,这些设备将使用它们的 IMEI 对 API 进行身份验证。

Android 设备只能访问有限的资源集,而 Web 应用程序用户可以访问其角色允许的任何资源。

我需要:

  • 一种安全统一的方式,通过电子邮件/密码对 Web 应用用户进行身份验证,通过 IMEI 对 Android 设备进行身份验证;
  • 限制他们可以访问的资源。

观察:

  • 我在 API 服务器中有 HTTPS。

关于如何实现这一目标的任何想法?

4

1 回答 1

1

获取 FOS 用户捆绑包。在您的用户实体中,您可以添加一个类型属性来检查它是什么类型的用户(这很容易上手)。您还可以定义不同的用户角色(值得一试)。然后也制作一个属性“IMEI”。现在您已经统一了您的用户帐户。

要使用 AngularJS 登录,您可以查看 FOS User Bundle 的代码。看看值“用户名”和“密码”是如何从表单中获取并由包处理的。然后,您可以使用此方法通过您的 REST API 登录用户。

对于您的 IMEI 用户,您可以在 google 上搜索“如何在 symfony2 中以编程方式登录”。然后,您可以编写自己的代码,仅检查 IMEI 号码(无密码)并登录用户。

于 2013-08-02T18:46:12.043 回答