猿问

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

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


qq_花开花谢_0
浏览 217回答 2
2回答

肥皂起泡泡

我发现了一些似乎可以解决问题的标头值。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如果我在进行进程内测试时在上下文的请求上设置这些标头,事情似乎按预期工作。如果我在单独创建的请求上设置标头,事情就不那么成功了,因为 'user.Current()' 调用会咨询上下文的请求。这些头文件也可以在 Python 环境中使用。

拉风的咖菲猫

我对 Python sdk 有类似的问题。解决方案的要点是在本地运行测试时绕过身份验证。您应该可以在测试设置时访问 [web] 应用程序对象 - 创建一个用户对象并将其保存到应用程序中(或您的 get_current_user() 方法将检查的任何地方)。这将使您对除身份验证本身之外的所有应用程序功能进行单元测试。对于后面的部分,您可以将最新更改部署为未发布的 google 应用程序版本,然后测试身份验证,如果一切正常 - 发布版本。
随时随地看视频慕课网APP

相关分类

Go
我要回答