douzi0609 2015-05-26 13:00
浏览 122
已采纳

Beego:显示登录用户名,该用户名取自表单的输入字段

I am using Beego framework for my purpose and i have two html view files one is login and other is landing login.html

<form action="/commonDashboard" name="loginForm" method="post" autocomplete="off" id="loginForm" >
                <input type="text" placeholder="Enter your user name" id="userName" name="userName" taborder="1">
                <input type="password" class="qwerty" placeholder="Enter your password" id="userPassword" name="userPassword" taborder="2">
                <input type="button" value="Login" onclick="validatelogin();" taborder="3">
                <input type="button" value="Clear" onclick="resetForm();" taborder="3">
                <span class="forgot"><a href="#">forgot password ?</a></span>
            <!-- Virtual Keyboard -->
                <span class="virtual"><a href="#" id="passwd" class="tooltip-tipsy" title="Click to open the virtual keyboard">Virtual Keyboard  
                </span>
            </form>
        

and landing page is

<header class="top">
    <div class="container-fluid">
        <aside class="logo"><img src="img.jpg"  class="img-responsive"></aside>
        
        <aside class="top-right">
            <div class="profile">
                <ul>
                    <li class="name"><img src="../static/img/profile-img.jpg" alt="Shri Ram"> Hi <a href="#">Shri</a></li>
                    <li class="logout"><a href="/login">Logout</a></li>
                    <li><a href="#">Contacts</a></li>
                    <li class="last"><a href="#">Help</a></li>
                </ul>
            </div>
            
            <div class="login-time">
                <ul>
                    <li><span>Current Login:</span> Mon 22 Sep 2014 03:28 PM</li>
                    <li class="last"><span>Last Login:</span> Sun 21 Sep 2014 02:28 PM</li>
                </ul>
            </div>
        </aside>
    </div>
</header>

and controller is as follows

package controllers

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

type MainController struct {
    beego.Controller
}

func (c *MainController) Get() {
    c.TplNames = "login.html"
    fmt.Println("login Get Method")
}

type LoginController struct {
    beego.Controller
}

func (c *LoginController) Post() {
    c.TplNames = "commonDashboard.html"
    fmt.Println("this is dashboard")
    password := c.Input().Get("userPassword")
    username := c.GetSession("userName").(string)
    c.SetSession("userName", username)
    c.Data["user"] = username
    fmt.Println("password:" + " " + password)
}

type HeaderController struct {
    beego.Controller
}

func (c *HeaderController) Get() {
    fmt.Println("this is Header")
    username := c.Input().Get("userName")
    fmt.Println(username)
    c.TplNames = "commonHeader.html"
}

type FooterController struct {
    beego.Controller
}

func (c *FooterController) Get() {
    fmt.Println("this is footer")
    c.TplNames = "commonFooter.html"
}

type MenuController struct {
    beego.Controller
}

func (c *MenuController) Get() {
    fmt.Println("this is menu")
    c.TplNames = "commonMenu.html"
}

i want to display the currently logged in username in header of html file

</div>
  • 写回答

1条回答 默认 最新

  • douwo5710 2015-05-27 08:39
    关注

    Enable session support in app.conf with:

    sessionon = true
    

    Save the username into session if login is valid:

    func (c *LoginController) Post() {
        var json JsonObject
        u := &User{}
        if err := c.ParseForm(u); err != nil {
            json = JsonObject{
                Success: false,
                Message: "Server error",
            }
        } else {
            if u.Username == "admin" && u.Password == "123456" {
                json = JsonObject{
                    Success: true,
                }
                // successfully login, put the user into session, you may put just username in
                c.SetSession("User", u)
            } else {
                json = JsonObject{
                    Success: false,
                    Message: "Incorrect username or password",
                }
            }
        }
        c.Data["json"] = json
        c.ServeJson()
    }
    

    Then you can recover the username in every Controller:

    func (c *IndexController) Get() {
        // get user from session, you may get just username
        u := c.GetSession("User")
        if u == nil {
            c.Redirect("/login", 302)
        }
        // set user from session into response data
        c.Data["User"] = u
        c.TplNames = "index.html"
    }
    

    Get it on the html with template format:

    {{ .User.username }}
    

    You can just use {{ .userName }}

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程