相关疑难解决方法(0)

Google Cloud Endpoints和用户身份验证

我目前刚进入AppEngine世界,并希望使用Cloud Endpoints为我正在开发的移动应用程序创建后端.

我现在的一个问题是关于用户的身份验证.我一直在关注App Engine上的Udacity的MOOC,他们教我们如何使用Google帐户验证用户的API请求.在后端,我们只需要在User我们的方法中添加一个参数,并检查用户是否已登录.据我所知,此用户参数由App Engine根据Authorization我们的请求标题生成.(可能需要一些确认)

现在,有一些我不确定理解的东西,并没有在这个MOOC上得到很好的解释.

现在,我想知道这是否与Google之外的其他OAuth方案兼容?那么,如果我想实现Facebook身份验证,我会简单地传递facebook访问令牌吗?

根据我搜索的内容,在Android上使用Facebook SDK会让我能够生成一个用户访问令牌,用于识别我的用户到Facebook.将它发送到我的后端后,我想检查它与Facebook的有效性,如果它有效,请为我的应用程序创建一个新用户.现在,我还想生成一个新标记,用于标识我的应用程序的用户.我需要做什么?

authentication google-app-engine android facebook-graph-api google-cloud-endpoints

25
推荐指数
1
解决办法
5459
查看次数

如何在GAE端点中检索自定义用户对象?

我刚刚在我的Google应用引擎Java应用上创建了自己的自定义身份验证.而且我正在尝试做的下一件事并不是那么麻烦.

身份验证工作正常,但现在我正在尝试向默认的User对象添加一些额外的字段,这样我就不必对服务器进行这么多的调用.

所以我到目前为止所创建的是一个实现Authenticator的自定义类.根据用户是否经过身份验证,authenticate方法返回User对象或null.然后,我的API端点可以访问用户对象.

为了扩展我的应用程序功能,我尝试扩展默认的User对象,创建一些新字段,然后将其传递给端点.但是,由于端点可访问的User对象与我扩展的用户对象不同,因此无法获取额外的字段.

MyAuthenticator.java

import com.google.api.server.spi.auth.common.User;

public class MyAuthenticator implements Authenticator {

@Override
public User authenticate(HttpServletRequest request) {
    // some code
    return new AuthUser(...)
}
Run Code Online (Sandbox Code Playgroud)

AuthUser.java

import com.google.api.server.spi.auth.common.User;

public class AuthUser extends User {
private String newToken;

public AuthUser(String email) {
    super(email);
}

public AuthUser(String id, String email) {
    super(id, email);
}

public AuthUser(String id, String email, String newToken) {
    super(id, email);
    this.newToken = newToken;
}

public String getNewToken() {
    return newToken;
}
}
Run Code Online (Sandbox Code Playgroud)

UserEndpoint.java

import com.google.appengine.api.users.User;

@Api(authenticators = …
Run Code Online (Sandbox Code Playgroud)

java authentication google-app-engine google-cloud-endpoints

4
推荐指数
1
解决办法
647
查看次数