所以这个问题让我困惑了一段时间!
这是控制台中的一些代码:
func GetLoginLinks(w *http.ResponseWriter, r *http.Request) (string, error) {
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 "", err
}
c.Debugf("Return url: " + r.URL.String())
c.Debugf("login url: " + url)
c.Debugf("url type: %T", url)
v := LoginItem(url, "Login")
return v, nil
}
}
它提供以下输出:
2013/06/17 21:48:28 DEBUG: Return url: /
2013/06/17 21:48:28 DEBUG: login url: /_ah/login?continue=http%A(MISSING)//localhost%A(MISSING)8080/
2013/06/17 21:48:28 DEBUG: url type: string
当上传到应用引擎本身时,这也会失败。
我正在苦苦挣扎的是函数的前 4 行直接来自开发人员指南。