我正在开发一个允许用户使用simpleauth进行身份验证的 webapp 。现在我将支持 Google 和 Facebook。除了登录和注销(使用 webapp2),webapp 将包含 Cloud Endpoint API。客户端将是 Web、Android 和 iOS。
我的问题是,使用 Endpoints Proto Datastore,如果用户的身份验证提供程序是 Facebook(或任何其他受支持的 OAuth2 提供程序),我是否可以拥有user_required=True
并调用endpoints.get_current_user()
以获取我的用户@Model.method
?如果不可能,这是否意味着我不应该拥有user_required=True
,而是应该从给定 OAuth2 令牌的提供者那里获取永久用户 ID 并将其保存在数据存储区中,为该用户生成我自己的身份验证令牌,然后将该令牌传递给每个请求?
编辑:不是传递身份验证令牌,而是让经过身份验证的用户请求他们可以传递给 API 方法的“API 令牌”是否有意义?这个令牌是否必须包含在 POST 或 GET 正文中,还是可以放在标头/cookie 中(我在 SO 的其他地方看到了一些关于 Cloud Endpoints 的标头和 cookie 的问题,但从那时起已经有一段时间了)。这一切都假设非谷歌身份验证不起作用。