0

I read a document "Using the Users Service" and it works. But I want to allow only several users to access my GAE, and restrict others.

So, How can I manage user accounts for my google app engine (with golang)?

I will use "Google account" system.

I need your help. Thank you! Have a nice day~

4

1 回答 1

0

我认为您有 2 个选项:
1. 您只能限制您的 Google App 域的用户,转到管理 >> 应用程序设置 >> 身份验证类型。
2.“appengine/user”包只是给你基本的功能。您可以使用它来检查当前用户的电子邮件是否在允许列表中。

var allowed = []string{"tom@example.com", "jack@example.com"}
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
    }

    var granted bool
    for _, email := range allowed {
        if u.Email == email {
           granted = true
           break;
        }
    }
    if !granted {
        http.Error(w, "you're not in the allowed list", 400)
        return
    }
    fmt.Fprintf(w, "Hello, %v!", u)
}
于 2013-11-11T15:07:14.897 回答