登陆简单逻辑介绍及实现
一、实现后端登录接口
二、知识点
- 如何获取前端传递过来的参数如mobile,passwd
- 如何返回json到前端
三、代码实战(接上节课代码继续)
1、第一版登录代码
package main
import (
"net/http"
)
func main() {
//把前端请求的格式和封装处理函数进行绑定的标签
//绑定请求和处理函数
http.HandleFunc("/user/login",
func(writer http.ResponseWriter,
request *http.Request) {
//数据库操作
//逻辑处理
//restapi json/xml 返回
//1.获取前端传递的参数
//mobile,passwd
//如何获取参数
//解析参数
request.ParseForm()
mobile := request.PostForm.Get("mobile")
passwd := request.PostForm.Get("passwd")
loginOk := false
if mobile == "15313311315" && passwd == "123456" {
loginOk = true
}
if loginOk {
//返回json ok
str := `{"code":0,"data":{"id":1,"token":"test"},"msg":"登录成功}}`
//设置header 为JSON 默认的text/html,所以特别指出返回的为application/json
writer.Header().Set("Content-Type", "application/json")
//设置200状态
writer.WriteHeader(http.StatusOK)
//输出
writer.Write([]byte(str))
} else {
//返回失败的JSON
str := `{"code":-1,"data":"",msg":"密码不正确"}}`
//设置header 为JSON 默认的text/html,所以特别指出返回的为application/json
writer.Header().Set("Content-Type", "application/json")
//设置200状态
writer.WriteHeader(http.StatusOK)
//输出
writer.Write([]byte(str))
}
//如何返回JSON
//io.WriteString(writer, "Hello World!")
})
//启动web服务器
http.ListenAndServe(":8080", nil)
}
2、 第二版代码优化(优化返回Json数据)
package main
import (
"net/http"
)
func main() {
//把前端请求的格式和封装处理函数进行绑定的标签
//绑定请求和处理函数
http.HandleFunc("/user/login",
func(writer http.ResponseWriter,
request *http.Request) {
//数据库操作
//逻辑处理
//restapi json/xml 返回
//1.获取前端传递的参数
//mobile,passwd
//如何获取参数
//解析参数
request.ParseForm()
mobile := request.PostForm.Get("mobile")
passwd := request.PostForm.Get("passwd")
loginOk := false
if mobile == "15313311315" && passwd == "123456" {
loginOk = true
}
str := `{"code":0,"data":{"id":1,"token":"test"},"msg":"登录成功"}`
if !loginOk {
//返回失败的JSON
str = `{"code":-1,"data":"","msg":"密码不正确"}`
}
//设置header 为JSON 默认的text/html,所以特别指出返回的为application/json
writer.Header().Set("Content-Type", "application/json")
//设置200状态
writer.WriteHeader(http.StatusOK)
//输出
writer.Write([]byte(str))
})
//启动web服务器
http.ListenAndServe(":8080", nil)
}