如何为web和移动构建通用api并使用oauth进行身份验证

时间:2014-05-29 04:01:58

标签: node.js api rest mobile oauth

我正在尝试构建我计划从各种移动原生应用和网站使用的通用API。如果我使用facebook oauth验证用户身份,我该如何设计我的API?在网站和移动设备上提供相同内容的最佳做法和行业标准是什么?我使用node.js和mongodb。我能够使用passport.js对网站的用户进行身份验证,但是如何为网站和移动设备构建通用的Web API并使用facebook(或任何其他oauth提供商)对用户进行身份验证?

花了很多时间用谷歌搜索,但找不到任何有用的指南。请帮助!

1 个答案:

答案 0 :(得分:0)

回答的前奏:我会清楚说明在上下文中进行身份验证和授权的含义。我们在这里与各方打交道

  • 用户。第一方
  • 中级应用/供应商。第三方
  • 验证端点。 Oauth提供者。第二方

授权是指Oauth允许第三方访问/使用您的数据(3-2)。验证是指用户直接通过Auth端点验证(1-2)。

每个Oauth提供商(facebook,google,facebook)都有自己的授权策略。那么如何处理呢。拥有自己的数据库和API。

  1. 用户登录(使用facebook)
  2. 检查用户ID,如果存在授权/获取令牌,则要求用户注册应用程序。
  3. 成功登录。
  4. 那么如何构建通用API?创建自己的数据库并将其用作代理/镜像用户详细信息。根据您的要求使用桥梁等授权。

                            /-------Oautha(2)
        User(1) ------ App(3) ------Oauthb(2) 
                            \-------Oauthc(2)
                                    depending on registered email       (party)