Angular Web应用程序和Android设备的REST API身份验证

时间:2013-08-02 18:03:11

标签: android rest authentication symfony angularjs

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

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

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

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

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

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

Android设备只能访问一组有限的资源,而网络应用用户可以访问其角色允许的任何内容。

我需要:

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

观察:

  • 我在API服务器上有HTTPS。

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

1 个答案:

答案 0 :(得分:0)

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

使用AngularJS登录时,您可以查看FOS用户包的代码。看一下如何从表单中获取值“username”和“password”并由bundle处理。然后,您可以使用此方法使用REST API登录用户。

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