| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package auth
- import (
- "github.com/gin-gonic/gin"
- v1 "github.com/runningwater/gohub/app/http/controllers/api/v1"
- "github.com/runningwater/gohub/app/requests"
- "github.com/runningwater/gohub/pkg/auth"
- "github.com/runningwater/gohub/pkg/jwt"
- "github.com/runningwater/gohub/pkg/response"
- )
- type LoginController struct {
- v1.BaseApiController
- }
- // LoginByPhone 手机号登录
- func (lc *LoginController) LoginByPhone(c *gin.Context) {
- // 1. 验证表单
- request := requests.LoginByPhoneRequest{}
- if ok := requests.Validate(c, &request, requests.LoginByPhone); !ok {
- return
- }
- // 2. 尝试登录
- user, err := auth.LoginByPhone(request.Phone)
- if err != nil {
- // 失败,显示错误提示
- response.Error(c, err, "账号不存在或密码错误")
- return
- }
- // 登录成功
- token := jwt.NewJWT().IssueToken(user.GetStringID(), user.Name)
- response.JSON(c, gin.H{
- "token": token,
- })
- }
- // LoginByPassword 用户名 + 密码登录
- func (lc *LoginController) LoginByPassword(c *gin.Context) {
- // 1. 验证表单
- request := requests.LoginByPasswordRequest{}
- if ok := requests.Validate(c, &request, requests.LoginByPassword); !ok {
- return
- }
- // 2. 尝试登录
- user, err := auth.Attemp(request.LoginID, request.Password)
- if err != nil {
- // 失败,显示错误提示
- response.Unauthorized(c, "账号不存在或密码错误")
- return
- }
- // 登录成功
- token := jwt.NewJWT().IssueToken(user.GetStringID(), user.Name)
- response.JSON(c, gin.H{
- "token": token,
- })
- }
|