我想将facebook身份验证集成到我的应用程序中 . 它是一个分布式系统,在客户端使用GAE作为后端和Android应用程序 . 对于通信,我使用的是Google Cloud endpoints .
阅读this article我有点困惑,因为他们似乎只是在描述Google提供的身份验证,而不是真正由其他提供商进行身份验证,正如 Headers 所暗示的那样 .
在使用谷歌搜索后花了几个小时我有什么关于"how does the authentication mechanism with facebook as OAuth2 provider should work"的信息:
-
我有一个由Facebook授权服务器生成的访问令牌 .
-
我知道我应该将此访问令牌传递给HTTP Authorization标头中的后端 .
-
由于我使用的是自定义身份验证机制(不是由Google提供),我应该编写一个自定义身份验证器,它实现this interface . 这一步在this answer中解释 .
-
在自定义身份验证器中,我应该验证访问令牌并从访问令牌中解析user_id .
-
authenticate(HttpServletRequest request) method应返回表示访问令牌所有者的User .
-
在步骤5中返回的用户是注入 endpoints 方法的用户 .
我仍然不能100%确定这些步骤是否正确,所以如果我错了请纠正我 .
丢失了哪些信息
- 我猜authenticate(HttpServletRequest request) method方法返回的用户代表任何经过身份验证的用户(不仅是由Google身份验证机制验证的用户) . 由于authenticate(HttpServletRequest request) method的文档中不清楚,用户返回的是com.google.appending.api.users.User类型的用户吗?
1 回答
我对这个问题的回答可能会帮助您找到适合您的上下文的正确工具/解决方案(以及相应的文档):What is the difference between Google identity toolkit, Google OAauth and Google+ sign in