繁体   English   中英

如何在用Go语言编写的本地Google App Engine测试中使用身份验证?

[英]How to work with authentication in local Google App Engine tests written in Go?

我正在Go中构建一个需要身份验证的Webapp。 我想使用appengine / aetest运行本地测试以验证身份验证行为。 但是,我看不到用虚拟用户创建aetest.Context的任何方法。 我想念什么吗?

我在Python SDK中也遇到了类似的问题。 解决方案的要点是在本地运行测试时绕过身份验证。

在测试设置时,您应该可以访问[web]应用程序对象-创建一个用户对象并将其保存到应用程序中(或get_current_user()方法将检查的任何位置)。

这将使您可以对除身份验证本身以外的所有应用程序功能进行单元测试。 对于后续部分,您可以将最新更改部署为未发布的google应用版本,然后测试身份验证,如果一切正常,请发布该版本。

我发现一些标头值似乎可以解决问题。 appengine / user / user_dev.go具有以下内容:

    X-AppEngine-Internal-User-Email
    X-AppEngine-Internal-User-Federated-Identity
    X-AppEngine-Internal-User-Federated-Provider
    X-AppEngine-Internal-User-Id
    X-AppEngine-Internal-User-Is-Admin

如果在进行进程内测试时在Context的Request上设置了这些标头,则事情似乎可以按预期进行。 如果我在单独创建的请求上设置标头,则事情将不太成功,因为“ user.Current()”调用会查询上下文的请求。

这些标头也可以在Python环境中工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM