<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                > 登錄頁比較簡單,只有用戶名和密碼,暫時沒有連接數據庫,使用一個簡單的固定驗證 > 用戶名:admin 密碼:123456 ![](https://box.kancloud.cn/300be53f908a86ee327693edf42aa9b8_651x208.jpg) ## 第1步 修改應用配置(conf/app.conf)如下 ~~~ appname = beego_blog httpaddr = 127.0.0.1 httpport = 3000 runmode = dev ~~~ ## 第2步 用戶登錄涉及到session,這里先在**main.go**文件里**啟用session** ~~~ package main import ( _ "beego_blog/routers" // _可以理解成占位符,也可以理解成忽略這個變量 "github.com/astaxie/beego" ) func main() { // 啟用session beego.BConfig.WebConfig.Session.SessionOn = true beego.Run() } ~~~ session的相關方法: ~~~ // 設置session c.SetSession(key, value) // 獲取session c.GetSession(key) // 刪除指定session c.DelSession(key) // 銷毀session c.DestroySession() ~~~ ## 第3步 **添加路由**,跳轉登錄頁、處理登錄和退出登錄 ~~~ package routers import ( "beego_blog/controllers" "github.com/astaxie/beego" ) func init() { beego.Router("/", &controllers.MainController{}) beego.Router("/login", &controllers.LoginController{}) beego.Router("/handleLogin", &controllers.LoginController{}, "post:HandleLogin") beego.Router("/logout", &controllers.LoginController{}, "get:Logout") } ~~~ ## 第4步 接下來,創建**登錄控制器controllers/login.go**,處理登錄相關邏輯,代碼如下: ~~~ package controllers import ( "github.com/astaxie/beego" ) type LoginController struct { beego.Controller } func (c *LoginController) Get() { c.TplName = "login.tpl" } // 處理登錄 func (c *LoginController) HandleLogin() { username, password := c.GetString("username"), c.GetString("password") if username == "admin" && password == "123456" { c.SetSession("username", username) c.Data["json"] = map[string]interface{}{"status": true, "msg": "登錄成功~"} } else { c.Data["json"] = map[string]interface{}{"status": false, "msg": "登錄失敗~"} } c.ServeJSON() } // 退出登錄 func (c *LoginController) Logout() { c.DelSession("username") c.Ctx.Redirect(302, "/login") } ~~~ 重定向: > c.Ctx.Redirect(code, url) ## 第5步 再添加**登錄模板view/login.tpl**(使用了layui布局和驗證+ajax提交的方式) ~~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登錄</title> <link rel="stylesheet" href="/static/layui-v2.3.0/css/layui.css"> </head> <body> <div class="layui-row"> <div class="layui-col-lg4">&nbsp;</div> <div class="layui-col-lg4"> <fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;"> <legend>登錄</legend> </fieldset> <div class="layui-form"> <div class="layui-form-item"> <label class="layui-form-label">用戶名</label> <div class="layui-input-block"> <input type="text" name="username" lay-verify="username" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">密碼</label> <div class="layui-input-block"> <input type="password" name="password" lay-verify="password" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label"></label> <button class="layui-btn layui-btn-normal" lay-submit lay-filter="login" type="button">登錄</button> </div> </div> </div> </div> <script src="/static/js/vendor/jquery-3.3.1.min.js"></script> <script src="/static/layui-v2.3.0/layui.js"></script> <script> layui.use(['layer', 'form'], function(layer, form){ // 驗證 form.verify({ username: function(value){ if(!value.trim()){ return '用戶名沒有填寫~'; } }, password: [/(.+){6,12}$/, '密碼必須6到12位~'] }); // 登錄提交 form.on('submit(login)', function(res) { $.ajax({ type: 'post', url: '/handleLogin', data: res.field, success: function(res) { if(res.status) { layer.msg(res.msg, {time: 1000, icon: 6}, function() { location.href = '/'; }); } else { layer.msg(res.msg, {time: 1500, icon: 5}); } }, error: function() { console.warn('request interface is failure.'); } }) }); }); </script> </body> </html> ~~~ 這樣一個超簡單的登錄就完成了,既然上面提了session,那么我們就來使用session做訪問控制 ## 第6步 需要在controllers/default.go來驗證是否設置了session(如果設置了就跳轉到首頁,沒有就跳轉到登錄頁) ~~~ package controllers import ( "fmt" "github.com/astaxie/beego" ) type MainController struct { beego.Controller } func (c *MainController) Get() { c.Data["title"] = "首頁" username := c.GetSession("username") fmt.Println(username) if username != nil { c.Data["username"] = username c.TplName = "index.tpl" } else { c.TplName = "login.tpl" } } ~~~ ## 第7步 然后在退出登錄的時候,把session刪掉,修改首頁模板(views/index.tpl)如下 ~~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> {{.title}} <a href="/logout">退出登錄</a> </body> </html> ~~~ 模板引擎語法:https://beego.me/docs/mvc/view/template.md 到此結束~ 后面會加一個連接數據庫的操作。。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看