示例#1
0
func (t TokenValidation) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	var u user.User
	u.Token = r.Header.Get("Token")

	if u.Token == "" {
		http.Error(w, "No token", http.StatusInternalServerError)
		return
	}
	u.Token = strings.TrimPrefix(strings.TrimSpace(u.Token), "Bearer: ")
	_, err := user.VerifyToken(u.Token)
	if err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}

	err = u.Authorize()
	if err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}
}