登陆简单逻辑介绍及实现

一、实现后端登录接口

7、登陆简单逻辑介绍及实现 - 图1

二、知识点

  1. 如何获取前端传递过来的参数如mobile,passwd
  2. 如何返回json到前端

三、代码实战(接上节课代码继续)

1、第一版登录代码

  1. package main
  2. import (
  3. "net/http"
  4. )
  5. func main() {
  6. //把前端请求的格式和封装处理函数进行绑定的标签
  7. //绑定请求和处理函数
  8. http.HandleFunc("/user/login",
  9. func(writer http.ResponseWriter,
  10. request *http.Request) {
  11. //数据库操作
  12. //逻辑处理
  13. //restapi json/xml 返回
  14. //1.获取前端传递的参数
  15. //mobile,passwd
  16. //如何获取参数
  17. //解析参数
  18. request.ParseForm()
  19. mobile := request.PostForm.Get("mobile")
  20. passwd := request.PostForm.Get("passwd")
  21. loginOk := false
  22. if mobile == "15313311315" && passwd == "123456" {
  23. loginOk = true
  24. }
  25. if loginOk {
  26. //返回json ok
  27. str := `{"code":0,"data":{"id":1,"token":"test"},"msg":"登录成功}}`
  28. //设置header 为JSON 默认的text/html,所以特别指出返回的为application/json
  29. writer.Header().Set("Content-Type", "application/json")
  30. //设置200状态
  31. writer.WriteHeader(http.StatusOK)
  32. //输出
  33. writer.Write([]byte(str))
  34. } else {
  35. //返回失败的JSON
  36. str := `{"code":-1,"data":"",msg":"密码不正确"}}`
  37. //设置header 为JSON 默认的text/html,所以特别指出返回的为application/json
  38. writer.Header().Set("Content-Type", "application/json")
  39. //设置200状态
  40. writer.WriteHeader(http.StatusOK)
  41. //输出
  42. writer.Write([]byte(str))
  43. }
  44. //如何返回JSON
  45. //io.WriteString(writer, "Hello World!")
  46. })
  47. //启动web服务器
  48. http.ListenAndServe(":8080", nil)
  49. }

2、 第二版代码优化(优化返回Json数据)

  1. package main
  2. import (
  3. "net/http"
  4. )
  5. func main() {
  6. //把前端请求的格式和封装处理函数进行绑定的标签
  7. //绑定请求和处理函数
  8. http.HandleFunc("/user/login",
  9. func(writer http.ResponseWriter,
  10. request *http.Request) {
  11. //数据库操作
  12. //逻辑处理
  13. //restapi json/xml 返回
  14. //1.获取前端传递的参数
  15. //mobile,passwd
  16. //如何获取参数
  17. //解析参数
  18. request.ParseForm()
  19. mobile := request.PostForm.Get("mobile")
  20. passwd := request.PostForm.Get("passwd")
  21. loginOk := false
  22. if mobile == "15313311315" && passwd == "123456" {
  23. loginOk = true
  24. }
  25. str := `{"code":0,"data":{"id":1,"token":"test"},"msg":"登录成功"}`
  26. if !loginOk {
  27. //返回失败的JSON
  28. str = `{"code":-1,"data":"","msg":"密码不正确"}`
  29. }
  30. //设置header 为JSON 默认的text/html,所以特别指出返回的为application/json
  31. writer.Header().Set("Content-Type", "application/json")
  32. //设置200状态
  33. writer.WriteHeader(http.StatusOK)
  34. //输出
  35. writer.Write([]byte(str))
  36. })
  37. //启动web服务器
  38. http.ListenAndServe(":8080", nil)
  39. }

四、测试登录接口

7、登陆简单逻辑介绍及实现 - 图2