簡體   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