Google app engine 谷歌云端点与另一个oAuth2提供商
有没有办法将另一个OAuth2提供商与Google云端点一起使用?我的意思是,例如,从Facebook获得身份验证,并使用与我们使用Google Account Auth相同的方式使用它(使用gapi js并将用户类放在Google app engine 谷歌云端点与另一个oAuth2提供商,google-app-engine,oauth-2.0,facebook-oauth,google-cloud-endpoints,Google App Engine,Oauth 2.0,Facebook Oauth,Google Cloud Endpoints,有没有办法将另一个OAuth2提供商与Google云端点一起使用?我的意思是,例如,从Facebook获得身份验证,并使用与我们使用Google Account Auth相同的方式使用它(使用gapi js并将用户类放在@ApiMethod)否。我遇到了其他人问这个问题以及Google人员的答案(如果我没记错的话)端点用户身份验证当前仅支持Google帐户。我编写了一个示例,将Facebook访问令牌交换为我的应用程序生成的令牌,并从端点方法中验证它: 您必须实现自己的验证器并更新@Api配置。
@ApiMethod
)否。我遇到了其他人问这个问题以及Google人员的答案(如果我没记错的话)端点用户身份验证当前仅支持Google帐户。我编写了一个示例,将Facebook访问令牌交换为我的应用程序生成的令牌,并从端点方法中验证它:
您必须实现自己的
验证器
并更新@Api
配置。基于此,一个简单的验证器将如下所示:
public class MyAuthenticator implements Authenticator {
@Override
public User authenticate(HttpServletRequest request) {
String token = request.getHeader("Authorization");
if (token != null) {
// apply your Facebook/Twitter/OAuth2 authentication
String user = authenticate(token);
if (user != null) {
return new User(user);
}
}
return null;
}
}
以及您的API定义
@Api(name = "example", authenticators = {MyAuthenticator.class})
您可以在中找到有关自定义身份验证程序的更多信息。谷歌云端点允许您将用户、HttpServletRequest和HttpServletContext作为参数注入API方法中 它不是OAuth2,但这里是解决方案的开始:
建议的解决方案是在特定的api方法中注入HttpServletRequest来访问会话。有没有实现替代方案的方法?比如在会话中存储用户?(我刚刚发现会话在Google Cloud Endpoint中也不起作用)当然,你可以实现任何你想要的替代方案,你可以通过端点传递你系统的令牌,但你必须自己实现身份验证。这里的问题是如何控制用户会话,因为Google Endpoint不提供会话,对吗,这是我的理解。@insaurraldap,这不是真的。您可以实现自己的auth模式,也可以使用其他提供程序实现OAuth。请检查:是否有与python等效的工具?@JanuszSkonieczny我不知道它是否适用于python,您可能应该问一个新问题:有人知道如何将安卓客户端的数据放入标头中吗?