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

用户注册架构(此处:使用Facebook),facebook,ember.js,ember-data,facebook-javascript-sdk,ember-cli,Facebook,Ember.js,Ember Data,Facebook Javascript Sdk,Ember Cli,我正在手工编写一个用户注册机制,所以我不想使用现有的插件或其他东西 我想知道最好的办法是什么。我计划执行以下抽象步骤: 编写一个组件,负责输出一个按钮,该按钮通过facebook调用facebook api-->登录(Im获取令牌和用户名/id) 在我的路径中,我使用该数据调用我应用程序的REST服务器后端。我将把令牌和用户名/id传递给服务器。(POST-api.myapp.com/users) 服务器接收请求并将通过Facebook API进行验证 用户数据和令牌本身-->如果有效:将新用户

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

我想知道最好的办法是什么。我计划执行以下抽象步骤:

  • 编写一个组件,负责输出一个按钮,该按钮通过facebook调用facebook api-->登录(Im获取令牌和用户名/id)
  • 在我的路径中,我使用该数据调用我应用程序的REST服务器后端。我将把令牌和用户名/id传递给服务器。(POST-api.myapp.com/users)
  • 服务器接收请求并将通过Facebook API进行验证 用户数据和令牌本身-->如果有效:将新用户添加到 数据库
  • 如果用户想现在登录(注册后),他将再次登录 步骤1和步骤2将询问服务器用户是否存在。但是 如何:因为ember建议REST服务器是一种 CRUD服务器和使用存储仅用于处理模型数据 不可能像“ask”那样对服务器进行“逻辑”调用 如果id为的用户已存在,则提示他“。如果返回的记录之和小于1,我是否应该调用“GET../users/”并检查我的路由

  • 这是一种常见的模式吗?

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

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

    我还建议您研究一个类似于OAuth的ember插件


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

    我认为这一点被否决了,因为您的问题有点广泛,可能会导致自行车脱落,您也可以通过简单的谷歌搜索找到您想要的答案。嗨@Phil Hauser听起来很清楚。但我想知道接下来的步骤。在使用facebook进行身份验证后,我想将其与本地服务器数据库“同步”。但是,我如何才能以一种不仅仅针对模型数据的方式与服务器通信(比如“嘿,服务器:名为JohnDoe的用户是否存在?如果存在,则返回true”),余烬数据表明您仅处理重复约定的模型数据。