为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
qq_花开花谢_0 2021-07-02 14:01:46
我正在用 Go 构建一个需要身份验证的 web 应用程序。我想使用验证身份验证行为的 appengine/aetest 运行本地测试。但是,我看不到使用虚拟用户创建aetest.Context 的任何方法。我错过了什么吗?
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

我发现了一些似乎可以解决问题的标头值。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 环境中使用。


查看完整回答
反对 回复 2021-07-12
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

我对 Python sdk 有类似的问题。解决方案的要点是在本地运行测试时绕过身份验证。

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

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


查看完整回答
反对 回复 2021-07-12
  • 2 回答
  • 0 关注
  • 216 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信