用户注册架构(此处:使用Facebook)

时间:2015-08-11 23:31:02

标签: facebook ember.js ember-data facebook-javascript-sdk ember-cli

我手工编写用户注册机制,所以我不想使用现有的插件或其他东西。

我想知道最好的方式是什么。我打算做以下抽象步骤:

  1. 编写负责输出调用facebook-api的按钮的组件 - >通过facebook登录(我得到令牌和用户名/身份证)
  2. 在我的路线中使用该数据来调用我的应用程序的REST-Server-Backend。我将令牌以及用户名/ id传递给服务器。 (POST api.myapp.com/users)
  3. 服务器收到请求并将通过Facebook-API进行验证 用户数据和令牌本身 - >如果有效:添加新用户 数据库中。
  4. 如果用户现在想要登录(注册后),他会再做一次 步骤1和将询问服务器用户是否存在。但 方法:由于ember建议REST-Server是某种类型的 CRUD-Server和使用商店仅用于处理模型数据 是不可能对服务器执行“ logic”-call ,如“ ask 如果有id的用户存在“ 。我应该打电话给”GET ../users/“,如果返回的记录总和小于1,请检查我的路线吗?
  5. 那是一种常见的模式吗?

1 个答案:

答案 0 :(得分:1)

听起来像一个相当简单的OAuth工作流程,但显然是指facebook docs。就第4点而言,我建议是的,在登录时,您在服务器上请求登录路由(应该抽象facebook OAuth调用),如果用户经过身份验证,则向下发送{{ 1}}资源,否则将它们重定向到登录并发送某种user HTTP错误。

由于您的所有API调用都应进行身份验证,因此您的用户将无法访问任何受保护的API资源。

我还建议你研究一下像ember-simple-auth这样的余烬插件,supports OAuth。

您可以找到有关OAuth2工作流程here的更多信息。