gin框架的使用(七)——用户注册的页面和登录的页面

9 篇文章 7 订阅

在gin-demo下创建staitc文件夹
到bootstrap的官网下载boostrap的压缩包,解压复制到static下,还需要有jquery.min.js文件。如下图所示。
在这里插入图片描述
然后在gin-demo下创建文件夹user,在user下写Login.html,Register.html
代码如下:
Login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <title>登录页</title>
    <link rel="stylesheet" href="../../static/css/bootstrap.min.css">
    <script src="../../static/js/jquery.min.js"></script>
    <script src="../../static/js/bootstrap.min.js"></script>
</head>
<style>
    .login-block {
        position: absolute;
        top: 50%;
        transform:  translateY(-50%);
    }
</style>
<body style="background:url(../../static/img/background.jpg) no-repeat center; background-position: center 0; background-size: cover; margin: 0px;">
    <div>

        <form action="/user/login" method="post" >
            <div class="col-md-4 col-lg-4 col-lg-offset-4 col-md-offset-4 login-block" style="background-color: white; opacity: 0.8; padding: 50px; border-radius: 15px">
                <h3 style="text-align: center;padding-bottom:20px;font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size: 40px">用户登录</h3>
                <div class="form-group input-group input-group-lg" >
                    <span class="input-group-addon" id="mobile" >手机号码</span>
                    <input type="text" name="Mobile" class="form-control" placeholder="手机号码">
                </div>

                <div class="form-group input-group input-group-lg">
                    <span class="input-group-addon" id="password" >密码&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
                    <input type="password" name="Password" class="form-control" placeholder="密码">

                </div>
                <div class="form-group center-block">
                    <button type="submit" class="btn btn-success center-block" style="width: 80px;height: 40px;font-size: 20px">登 录</button>
                    <a href="/user/register">没有账户?点击注册</a>
                </div>

            </div>
        </form>
    </div>
</body>
<script>

</script>
</html>

Register.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8"/>
  <title>注册页</title>
  <link rel="stylesheet" href="../../static/css/bootstrap.min.css">
  <script src="../../static/js/jquery.min.js"></script>
  <script src="../../static/js/bootstrap.min.js"></script>
</head>
<style>
  .login-block {
    position: absolute;
    top: 50%;
    transform:  translateY(-50%);
  }
</style>
<body style="background:url(../../static/img/background.jpg) no-repeat center; background-position: center 0; background-size: cover; margin: 0px;">
<div>

  <form action="/user/register" method="post" >
    <div class="col-md-4 col-lg-4 col-lg-offset-4 col-md-offset-4 login-block" style="background-color: white; opacity: 0.8; padding: 50px; border-radius: 15px">
      <h3 style="text-align: center;padding-bottom:20px;font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size: 40px">用户注册</h3>
      <div class="form-group input-group input-group-lg" >
        <span class="input-group-addon" id="username" >用户名&nbsp;&nbsp;&nbsp;&nbsp;</span>
        <input type="text" name="Username" class="form-control" placeholder="用户名">
      </div>
      <div class="form-group input-group input-group-lg" >
        <span class="input-group-addon" id="mobile" >手机号码</span>
        <input type="text" name="Mobile" class="form-control" placeholder="手机号码">
      </div>

      <div class="form-group input-group input-group-lg">
        <span class="input-group-addon" id="password" >密码&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
        <input type="password" name="Password" class="form-control" placeholder="密码">

      </div>
      <div class="form-group center-block">
        <button type="submit" class="btn btn-success center-block" style="width: 80px;height: 40px;font-size: 20px">注 册</button>
        <a href="/user/login">已有账户?点击登录</a>
      </div>

    </div>
  </form>
</div>
</body>
<script>

</script>
</html>

其实一模一样哈。这些都是可以整合的。
然后在gin-demo/router/router.go下加入

package router

import (
	"gin-demo/controller"
	"github.com/gin-gonic/gin"
)

func InitRouter(r *gin.Engine) *gin.Engine{
	
	//必加才可以访问到
	r.LoadHTMLGlob("template/**/*")
	//加载静态资源
	r.Static("/static", "./static")
	
	//首页页面
	r.GET("/index",controller.IndexPage) //加入的页面
	//注册
	r.POST("/user/register",controller.Register)
	r.GET("/user/register",controller.RegisterPage)//加入的页面(注意是get)
	//登录
	r.POST("/user/login",controller.Login)
	r.GET("/user/login",controller.LoginPage)//加入的页面(注意是get)

	return r
}

在对应的controller下加入

package controller

import "C"
import (
	"gin-demo/common"
	"gin-demo/model"
	"gin-demo/response"
	"gin-demo/util"
	"github.com/gin-gonic/gin"
	"github.com/jinzhu/gorm"
	"golang.org/x/crypto/bcrypt"
	"net/http"
)

// Register 用户注册
func Register(c *gin.Context){
	//省略
}

// Login 用户的登录接口
func Login(c *gin.Context){
	//省略
}

//对应的注册页面的方法
func RegisterPage(c *gin.Context){
	c.HTML(http.StatusOK,"Register.html",gin.H{})
}
//对应的登录页面的方法
func LoginPage(c *gin.Context){
	c.HTML(http.StatusOK,"Login.html",gin.H{})
}

func isMobileExist(db *gorm.DB, mobile string) bool {
	//省略
}

然后运行后。
浏览器输入127.0.0.1:8888/user/register
在这里插入图片描述
127.0.0.1:8888/user/login
在这里插入图片描述
然后登录成功和注册成功暂时返回的都是{code:…}这样的。
这里需要对注册和登录的方法改造,注册成功自动跳转到登录页面
登录成功自动跳转到index首页。
继续搞

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Gin 框架中,你可以使用中间件来实现获取当前登录用户的 ID。下面是一个示例代码,演示了如何在 Gin 框架中获取当前登录用户的 ID: ```go // 定义一个中间件函数,用于验证用户是否登录 func AuthMiddleware() gin.HandlerFunc { return func(c *gin.Context) { // 在这里进行用户登录验证的逻辑 // 假设验证成功,并且从验证结果中获取了用户的 ID userID := "123" // 假设用户 ID 是 "123" // 将用户 ID 存储到 Context 中 c.Set("userID", userID) c.Next() } } // 在路由中使用中间件 func main() { r := gin.Default() // 使用 AuthMiddleware 中间件 r.Use(AuthMiddleware()) // 定义一个需要获取当前登录用户 ID 的路由 r.GET("/user/id", func(c *gin.Context) { // 从 Context 中获取用户 ID userID, exists := c.Get("userID") if !exists { c.JSON(http.StatusUnauthorized, gin.H{ "error": "未登录", }) return } c.JSON(http.StatusOK, gin.H{ "userID": userID, }) }) r.Run(":8080") } ``` 在上述示例中,我们定义了一个名为 `AuthMiddleware` 的中间件函数,用于验证用户是否登录。在验证成功后,我们将用户 ID 存储到 Gin 的 Context 中,然后可以在后续的路由处理函数中通过 `c.Get("userID")` 获取到当前登录用户的 ID。 当访问 `/user/id` 路径时,如果用户已登录,将返回当前登录用户的 ID;如果用户未登录,将返回未登录的错误信息。请根据你的实际情况进行修改和适配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值