>  기사  >  백엔드 개발  >  golang 사용자로 로그인하는 방법

golang 사용자로 로그인하는 방법

尚
원래의
2019-12-16 14:58:033924검색

golang 사용자로 로그인하는 방법

Golang은 다음과 같이 사용자 로그인 등록을 구현합니다.

첫 번째 단계는 모델을 등록하는 것입니다

모델 아래에 models.go 만들기
models.go 파일

package models

import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
)

func RegisterDB() {

//注册驱动
orm.RegisterDriver("mysql", orm.DRMySQL)
//数据库链接
//注册默认数据库
var db_url string = beego.AppConfig.String("username_DB") + ":" + beego.AppConfig.String("password_DB") + "@tcp(" + beego.AppConfig.String("host_DB") + ")/" + beego.AppConfig.String("name_DB") + "?charset=" + beego.AppConfig.String("charset")
beego.Info(db_url)
orm.RegisterDataBase("default", "mysql", db_url)
// orm.RegisterDataBase("default", "mysql", "an:111@tcp(127.0.0.1:3306)/yoo_home?charset=utf8")
// //注册model
orm.RegisterModel(new(TUser))

}

두 번째 단계는 아래에 있는 데이터베이스 연결

app이 필요합니다. conf.conf 파일

appname = an
httpport = 8080
runmode = dev
sessionon = true

#数据库为mysql
host_DB = "127.0.0.1"
port_DB = "3306"
charset = "utf8"
name_DB = "ancg"
username_DB = "an"
password_DB = 111

세 번째 단계는 간단한 프런트 엔드 뷰 인터페이스를 작성하는 것입니다

views 아래에 client.html 파일을 생성합니다

<!DOCTYPE html>
<html>
<head>
<title>客户端接口测试</title>
</head>
<body>
<label>注册</label>
<form action="/client " method="POST">
<label>[options == register 注册]</label>
<div>options:<input type="text" value="register" name="options"></div>
<div>tel:<input type="text" name="Tel"></div>
<div>pwd:<input type="text" name="Pwd"></div>
<input type="submit" name="注册"Submit/>
</form>
<br>
<label>登录</label>
<form action="/client " method="POST">
<label>[options == login 登录]</label>
<div>options:<input type="text" value="login" name="options"></div>
<div>tel:<input type="text" name="Tel"></div>
<div>pwd:<input type="text" name="Pwd"></div>
<input type="submit" name="注册"Submit/>
</form>
</body>
</html>

네 번째 단계는 모델에서 TUser를 생성하여 다음을 사용하여 데이터베이스용 테이블을 자동으로 생성하는 것입니다.

TUser.go

package models

import (
"github.com/astaxie/beego/orm"
//_"github.com/go-sql-driver/mysql"
)

//用户表
type TUser struct {
//用户序号
Id int64
//电话号码
Tep string
//密码
Pwd string
//收款人
Payee string
//地址
Address string
//收款帐号
Amount string
//账号类别
AmountType string
//是否消费者
IsCustomer bool
//是否商家
IsSeller bool
//是否配送员
IsDiliver bool
//是否管理员
IsManager bool
//微信openId
Vid string
//是否冻结
IsLock bool
//创建时间 --- 时间戳
AddTime int64
}

//新建用户
func AddUser(user *TUser) (int64, error) {
o := orm.NewOrm() //数据库
userId, err := o.Insert(user) //插入数据
return userId, err
}

//查询账号
func GetUserById(userId int64) (*TUser, error) {
o := orm.NewOrm() //数据库
user := new(TUser) //TUser就是第9行struct的数据库,就是mysql的表
qs := o.QueryTable("t_user") //表名为t_user
err := qs.Filter("id", userId).One(user) //One是指查询一条数据,One(user)是查询mysql表中一条数据
return user, err
}

//手机号查询账号
func GetUserByTel(tel string) (*TUser, error) {
o := orm.NewOrm()
user := new(TUser) //TUser就是第9行struct的数据库,就是mysql的表
qs := o.QueryTable("t_user") //表名为t_user
err := qs.Filter("tel", tel).One(user) //One是指查询一条数据,One(user)是查询mysql表中一条数据
return user, err
}

//微信Id查询账号
func GetUserByVid(vid int64) (*TUser, error) {
o := orm.NewOrm()
user := new(TUser) //TUser就是第9行struct的数据库,就是mysql的表
qs := o.QueryTable("t_user") //表名为t_user
err := qs.Filter("vid", vid).One(user) //One是指查询一条数据,One(user)是查询mysql表中一条数据
return user, err
}

5단계: 옵션에 연결되는 컨트롤러에 파일을 생성하고 해당 옵션을 사용하여 다른 컨트롤러를 호출합니다.

client.go 파일

package controllers

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

type ClientController struct {
beego.Controller
}

func (this *ClientController) Get() {
this.TplName = "client.html"
}

func (this *ClientController) Post() {
options := this.Input().Get("options")
beego.Info(options)
//请求检查方法
if options != "" {
switch options {
case "login":
this.login()
case "register":
this.register()
default:
this.Data["json"] = map[string]interface{}{"status": 400, "msg": "无对应处理方法!", "time": time.Now().Format("2006-12-12 12:12:12")}
this.ServeJSON()
return
}
this.Data["json"] = map[string]interface{}{"status": 400, "msg": "options为空", "time": time.Now().Format("2006-12-12 12:12:12")}
this.ServeJSON()
return

}

}

더 많은 Golang 지식을 보려면 에 주목하세요. golang 튜토리얼 칼럼.

위 내용은 golang 사용자로 로그인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.