溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

beego框架之cookie與session

發(fā)布時(shí)間:2020-07-20 21:58:14 來(lái)源:網(wǎng)絡(luò) 閱讀:922 作者:梁十八 欄目:編程語(yǔ)言

this.Ctx.SetCookie("name", name, maxage, "/")

this.Ctx.SetCookie("pwd", Md5([]byte(pwd)), maxage, "/")

this.Ctx.GetCookie

cookie例子:

package controllers

import (
   "github.com/astaxie/beego"
   "log"
)

type TestLoginController struct {
   beego.Controller
}

func (c *TestLoginController) Login() {
   //獲取cookie
   name := c.Ctx.GetCookie("name")
   password := c.Ctx.GetCookie("password")
   //只是簡(jiǎn)單演示,并不嚴(yán)謹(jǐn)
   if name != "" {
      c.Ctx.WriteString("Username:" + name + " Password:" + password)
   }else{
      c.Ctx.WriteString(`
         <html>
            <form action="http://127.0.0.1:8080/test_login" method="post">
               <input type="text" name="Username">
               <input type="password" name="Password">
               <input type="submit" value="提交">
            </form>
         </html>
      `)
   }
}

type the_user struct {
   Username string
   Password string
}

func (c *TestLoginController) Post() {
   u := the_user{}
   if err := c.ParseForm(&u); err != nil {
      log.Fatal(err)
   }

   c.Ctx.SetCookie("name", u.Username, 100, "/")
   c.Ctx.SetCookie("password", u.Password, 100, "/")
   c.Ctx.WriteString("Username:" + u.Username + " Password:" + u.Password)

}




beego 內(nèi)置了 session 模塊,目前 session 模塊支持的后端引擎包括 memory、cookie、file、mysql、redis、couchbase、memcache、postgres,用戶(hù)也可以根據(jù)相應(yīng)的 interface 實(shí)現(xiàn)自己的引擎。

beego 中使用 session 相當(dāng)方便,只要在 main 入口函數(shù)中設(shè)置如下:

beego框架之cookie與session

或者通過(guò)配置文件配置如下:

beego框架之cookie與session

session 有幾個(gè)方便的方法:

beego框架之cookie與session

session例子:

c.SetSession("loginuser", "adminuser")
fmt.Println("當(dāng)前的session:")
fmt.Println(c.CruSession)
//刪除指定的session   
c.DelSession("loginuser")
//銷(xiāo)毀全部的session
c.DestroySession()
islogin=true
fmt.Println("當(dāng)前的session:")
fmt.Println(c.CruSession)
     
c.SetSession("name", "zhangsan")
//注意:要能c.Ctx.WriteString(name),就要讓它符合輸出的類(lèi)型
name := fmt.Sprintf("%v", c.GetSession("name"))
c.Ctx.WriteString(name)

beego.BConfig.WebConfig.Session.SessionOn = true設(shè)置后不能進(jìn)行SetSession等操作,要用上面的方法

        



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI