beego 路由跳轉問題

juntaran發表於2017-09-19

我想讓使用者登陸後 跳到 /user/userid 一直跳不過去。。求幫忙看看 具體邏輯是 使用者登入,session 儲存使用者的登入郵箱 密碼驗證成功後,後臺讀取 session,查詢資料庫得到使用者的 userid

controller 相關部分:

// login
type LoginUserController struct {
    BaseController
}

func (this *LoginUserController) List() {

}

func (this *LoginUserController) Get() {
    if this.isLogin == true {
        // 1. 先根據 session 儲存的 userEmail 查詢 userid
        //log.Println("logincontroller:", this.userEmail)
        userid := models.GetIDByEmail(this.userEmail)
        log.Println("List userid:", userid)

        // 2. 跳轉到 /user/userid
        url := this.URLFor("LoginUserController.List()", ":userid", strconv.Itoa(int(userid)))
        log.Println("Redirect to", url)

        this.Redirect(url, 302)
    } else {
        this.TplName = "login.tpl"
    }
}

func (this *LoginUserController) Post() {
    name := this.GetString("name")
    password := this.GetString("password")

    if "" == name {
        this.Data["json"] = map[string]interface{}{"code": 0, "message": "請填寫郵箱"}
        this.ServeJSON()
    }

    if "" == password {
        this.Data["json"] = map[string]interface{}{"code": 0, "message": "請填寫密碼"}
        this.ServeJSON()
    }

    isCancel, err := models.LoginUser(name, password)
    if err == nil {
        this.SetSession("userLogin", true)
        this.SetSession("userEmail", name)
        userTempEmail = name
        this.Data["json"] = map[string]interface{}{"code": 1, "message": "登入成功"}
    } else {
        // 使用者已經銷號
        if isCancel == 1 {
            this.Data["json"] = map[string]interface{}{"code": 0, "message": "Farewell, this user is Canceled"}
        } else {
            this.Data["json"] = map[string]interface{}{"code": 0, "message": "登入失敗"}
        }
    }
    this.ServeJSON()
}

router 相關部分:

beego.Router("/login", &controllers.LoginUserController{})
beego.Router("/user/:userid", &controllers.LoginUserController{}, "*:List")

求大神幫忙指點一下

現在 log 中連 跳轉的 url 都拼不出來 是空的

2017/09/19 22:32:15 Redirect to 
更多原創文章乾貨分享,請關注公眾號
  • beego 路由跳轉問題
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章