【问题标题】:How to disable google cloud endpoints user auth?如何禁用谷歌云端点用户身份验证?
【发布时间】:2015-03-21 15:46:00
【问题描述】:

我正在使用我的自定义身份验证流程(使用 facebook 进行身份验证)并希望完全禁用 Google Cloud Endpoints 提供的身份验证。

当我使用 HTTP 授权标头(Bearer)设置它时,它会自动调用一些框架方法,在日志中显示以下条目-

D 2015-03-21 20:41:22.622 Checking for id_token. D 2015-03-21 20:41:22.622 id_token verification failed: Token is not an id_token (Wrong number of segments) D 2015-03-21 20:41:22.623 Checking for oauth token. D 2015-03-21 20:41:22.627 Oauth framework user didn't match oauth token user.

我认为它每次都调用 google api 并检查 oauth 令牌。

我尝试设置auth_level=endpoints.AUTH_LEVEL.REQUIRED,但警告仍然存在。

最后,我通过源代码进行调试,并将环境变量 ENDPOINTS_USE_OAUTH_SCOPE 设置为某个随机值,以防止它与谷歌 api 进行检查。

有没有更好的方法来处理这个问题?

[编辑] 这是针对 AppEngine Python 的。

【问题讨论】:

  • 如果您发布您的代码,有人将更有可能帮助您。
  • Google Cloud Endpoints 专为使用 Google 帐户或 Google+ 登录而设计。如果您想使用自己的身份验证方案,最好使用其他框架,例如 Restlet、Spring 或 Jersey。
  • 我不同意 @Adam 的观点,您可以使用端点构建自己的身份验证实现,它不像使用内置 OAuth 那样简单,但非常简单。
  • 我正在使用 python。我选择端点的原因是它能够自动生成客户端 sdk,快速管理版本​​控制。与 Google 帐户的紧密耦合令人遗憾。我正在使用我自己的身份验证,但提示其命中 google api 的警告消息令人担忧。
  • 这个问题更适合发送到 appengine google group mailing-list 吗?

标签: google-app-engine google-cloud-endpoints


【解决方案1】:

根据@tomrozb 的要求,这是我们今天使用的一个非常简单的实现。真的没什么大不了的。

首先,我们的 AngularJS 前端将一个标头令牌附加到 每个 请求,此令牌在登录时获取(未经过身份验证的端点)并存储在本地(非常类似于 cookie)。确保 HTTPS!

在我的端点上,我只使用req.getHeader("Authorization"); 检查该令牌,并根据我当前的“会话”检查该令牌并抛出一个UnauthorizedException("Not logged in") 异常。请记住,如果请求,原始 HTTPServletRequest 会自动注入,因此您可以执行以下操作:

@ApiMethod(name="createWhatever", path="createWhatever")
public Whatever createWhatever(CreateWhateverRequest data, HttpServletRequest req) throws UnauthorizedException{

Long userId = getUserId(req.getHeader("Authorization"));
    if(userId == null){
            throw new UnauthorizedException("Not logged in");
        }
//do your thing
}

这基本上是内置功能的作用,它在您的请求中注入一个“用户”对象,并要求您检查其是否为空并采取相应措施,我只是针对自定义实体而不是为 OAuth 存储的任何 GAE 凭据执行此操作.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多