如何使用单页面应用和API后端进行身份验证?

时间:2013-03-12 13:30:54

标签: api rest authentication oauth oauth-2.0

我拥有这两个,api.example.com上的API后端和example.com上的前端单页应用。 API基本上是数据库后端的包装器。

现在,我想让单页应用(=客户端应用)的用户通过API进行身份验证。为此,据我所知,客户端(=单页应用程序)将client_id与user_id一起发送到API,然后API发出AccessToken。

但是,在我的单页应用中,我不确定存储访问令牌的位置/方式。我正在寻找一个简单的参考或一个好的概念,让登录用户访问API应用程序。

一位朋友向我建议了这个流程:

  1. 客户端显示登录输入(电子邮件或用户名)和密码
  2. 客户端应用程序向您的API请求获取未经授权的令牌(例如POST / api / v1 / auth / new),
  3. 服务器为应用创建一个令牌并将其发回,
  4. 客户端应用程序将令牌以及登录名,密码和请求签名发送到API(例如POST / api / v1 / mobile_authenticate),
  5. API验证并验证凭据
  6. 如果一切正常,应用程序会使用令牌代表用户进一步完成。
  7. 有什么想法?如何简化或改进?

1 个答案:

答案 0 :(得分:4)

我正在使用api密钥进行服务器API中的权限检查。 api密钥的工作流程如下所示。

  1. 客户端应用程序显示登录输入(无论是电子邮件还是用户名)和 密码。
  2. 客户端应用程序向API发出请求以获取 api密钥(例如POST / api / v1 / users / validate)。
  3. 客户端应用程序使用api密钥访问API。 (如果是http请求,则api密钥可以包含在http标头或查询字符串中。)
  4. 希望它有所帮助。