J'expérimente pour développer avec google-app-engine sur la plate-forme golang et je souhaite effectuer une vérification (pour les utilisateurs connectés) sur des pages spécifiques seulement.authentification google app engine pour des pages spécifiques
par exemple:
utilisateurs qui visitent le chemin «/» seront redirigés vers «/site » s'ils sont connectés ou seront affichés une page sur le produit.
tandis que les utilisateurs visitant les pages "/ members", "/ users", "/ items" seront redirigés vers une page de connexion s'ils ne sont pas authentifiés.
un simple code de go propose:
package hello
import (
"fmt"
"net/http"
"appengine"
"appengine/user"
)
func init() {
http.HandleFunc("/", site)
http.HandleFunc("/", members) // etc for "items" and "products" and whatever restricted pages
}
func user_logged_in() bool {
// do the check ...
return true
}
func user_not_logged_in() {
// fatal error message
}
func site(w http.ResponseWriter, r *http.Request) {
if !user_logged_in() {
// show "about" page
} else {
// show a "user" page
}
}
func members(w http.ResponseWriter, r *http.Request) {
if !user_logged_in() {
// show "members" page
} else {
user_not_logged_in() // fatal error message
}
}
mais cela se sent un peu hacky, je voudrais pouvoir tester l'URL de la page dans la fonction d'initialisation et de pré-processus, le compte utilisateur une fois au lieu d'appeler un vérificateur fonctionner à partir de n'importe où dans mon code ...
Quelle serait une bonne habitude de faire en sorte que le répartiteur http appelle mes pages "login-required" seulement si un utilisateur est connecté?
Bien! Merci. Puis-je également déclarer la page de connexion (paramètres?) Avec cette méthode? – user340495
Vous pouvez définir 'auth_fail_action' à la valeur' redirect', ce qui entraîne une redirection vers la page de connexion Google. Si vous avez besoin d'un comportement différent, vous pouvez utiliser le [Service utilisateur] (https://developers.google.com/appengine/docs/go/config/appconfig?hl=de#Go_app_yaml_Requiring_login_or_administrator_status) – Sebastian