Ich habe eine Golang-Web-Anwendung mit Revel-Framework gemacht. Ich habe Probleme mit der Umleitung auf die vorherige Seite nach dem Login. Ich habe wenige Seiten, auf denen sich Benutzer anmelden sollten, um den Inhalt zu sehen. Ich habe erfolgreich auf Login-Seite, wenn die Benutzer umgeleitet wird nicht angemeldet Hier ist mein Code-Snippet -.revel umleiten auf vorherige URL nach dem Login
func checkUser(c *revel.Controller) revel.Result {
if _, ok := c.Session["user"]; ok {
return nil
}
var cont = c.Request.RequestURI
fmt.Printf("Requesting URL : ", cont)
return c.Redirect(LoginApp.Login, cont)
}
func init() {
revel.InterceptFunc(checkUser, revel.BEFORE, &App{})
}
Und hier ist mein app.go
type App struct {
*revel.Controller
}
func (c App) Application() revel.Result {
var app = make(map[string]string)
app["appTitle"] = "Hourglass"
app["ngApp"] = "app"
app["theme"] = "dark"
app["ngController"] = "ApplicationController"
return c.Render(app)
}
func (c App) Test() revel.Result {
var app = make(map[string]string)
app["appTitle"] = "Hourglass"
app["ngApp"] = "app"
app["theme"] = "dark"
app["ngController"] = "ApplicationController"
return c.Render(app)
}
Jetzt habe ich eine login.go Datei, die eine ServiceLogin Methode enthält
func (c LoginApp) ServiceLogin(user models.User) revel.Result {
username := user.UserName
password := user.Password
fmt.Printf("", username)
fmt.Printf("", password)
sess := service.GetSession()
usercoll := sess.DB("hourglass_dev").C("user")
var result models.User
var err = usercoll.Find(bson.M{"UserName": username, "Password": password}).One(&result)
fmt.Printf("", result)
fmt.Printf("", c.Request.RequestURI)
if err != nil {
fmt.Printf("", err)
}
//var app := make(map[string]string)
//return c.Render(app)
c.Session["user"] = username
return c.Redirect(App.Application)
}
nun in der letzten Zeile der Methode, die ich zu hart codiert haben die App.Applica, statt dessen möchte ich die anfragende URL verwenden, damit sich der Benutzer bei erfolgreicher Anmeldung automatisch auf die gewünschte Seite umleitet.