您如何将带有用户信息的 XMLHttpRequest 发送到 GAE?

How do you send an XMLHttpRequest to GAE with user info?

如何将 XMLHttpRequest 发送到 Google App Engine 以识别登录用户?

我的站点使用内置的登录系统来访问页面,如下所示:

func handler(w http.ResponseWriter, r *http.Request) {
    c := appengine.NewContext(r)
    u := user.Current(c)
    if u == nil {
        url, err := user.LoginURL(c, r.URL.String())
        if err != nil {
            http.Error(w, err.Error(), http.StatusInternalServerError)
            return
        }
        w.Header().Set("Location", url)
        w.WriteHeader(http.StatusFound)
        return
    }
    fmt.Fprintf(w, "Hello, %v!", u)
}

从该页面向由同一 GAE 应用程序处理的不同 url 执行 XMLHttpRequest 时,如何包含该用户信息?

如果用户已登录,用于识别用户的 HttpOnly cookie 会自动包含在 XMLHttpRequest 中。然后您可以正常获取用户:

func handler(w http.ResponseWriter, r *http.Request) {
    c := appengine.NewContext(r)
    u := user.Current(c)