作者 唐旭辉

更新

... ... @@ -5,7 +5,7 @@ import (
"fmt"
"oppmg/common/log"
"oppmg/protocol"
"oppmg/services/serveauth"
"oppmg/services/auth"
"github.com/astaxie/beego/validation"
)
... ... @@ -44,7 +44,7 @@ func (c *AuthController) AccessToken() {
//TODO
log.Error("参数错误")
}
data, commErr := serveauth.GetAccessToken(param)
data, commErr := auth.GetAccessToken(param)
msg = protocol.NewReturnResponse(data, commErr)
return
}
... ...
... ... @@ -68,3 +68,21 @@ type RequestPositionDelete struct {
CompanyID int64 `json:"company_id"`
IDs []int64 `json:"ids"`
}
type RequestUserAdd struct {
Name string `json:"name"`
CompanyId int64 `json:"company_id"`
Phone string `json:"phone`
Departments []int `json:"departments"`
Positions []int `json:"positions"`
Roles []int `json:"roles"`
}
type RequestUserEdit struct {
Name string `json:"name"`
CompanyId int64 `json:"company_id"`
Phone string `json:"phone`
Departments []int `json:"departments"`
Positions []int `json:"positions"`
Roles []int `json:"roles"`
}
... ...
... ... @@ -148,7 +148,7 @@ func positionRelationUpdate(positionUpdate *models.Position, newparent *models.P
return nil
}
const (
//获取某个部门的下级部门 select ... for update
//获取某个部门的下级部门 锁数据 select ... for update
dataSql0 string = `SELECT id,relation FROM position WHERE relation LIKE ? AND delete_at = 0 FOR UPDATE`
//更新关系树
dataSql2 string = `update position set relation=? where id=?`
... ...
package serveauth
import (
"crypto/sha1"
"encoding/hex"
"fmt"
"io"
"oppmg/common/config"
"oppmg/common/log"
"oppmg/models"
"oppmg/protocol"
"oppmg/utils"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
//GetAccessToken 获取accessToken
func GetAccessToken(param protocol.RequestCheckSmsCode) (*protocol.DataUserInfo, error) {
data := &protocol.DataUserInfo{}
err := protocol.NewErrWithMessage("00000")
log.Info("log 打印")
log.Info("%+v", config.MConfig)
return data, err
}
//ValidatePassword ...
//from:待校验的密码;to:比对用的密文
func validatePassword(from, to string) bool {
//密码加密方式sha1
h := sha1.New()
io.WriteString(h, from)
str := hex.EncodeToString(h.Sum(nil))
if strings.Compare(str, to) == 0 {
return true
}
return false
}
//LoginAuth 登录认证
func LoginAuthByPassword(account, password string) error {
var (
user *models.User
uAuth *models.UserAuth
err error
)
user, err = models.GetUserByPhone(account)
if err != nil {
log.Error(err.Error())
return protocol.NewErrWithMessage("1", err)
}
if ok := validatePassword(password, user.Passwd); !ok {
return protocol.NewErrWithMessage("1", err)
}
uAuth, err = models.ReadUserAuthByDevice(user.Id, models.DEVICE_TYPE_WEB)
if err != nil && err != orm.ErrNoRows {
e := fmt.Errorf("ReadUserAuthByDevice(%d,%d) err:%s", user.Id, models.DEVICE_TYPE_WEB, err)
log.Error(e.Error())
return protocol.NewErrWithMessage("1", e)
}
var (
authcode string
authcodeExp time.Time
)
authcode = utils.GenerateIDByUUID()
authcodeExp = time.Now().Add(time.Duration(models.AUTHCODE_TIME) * time.Second)
if err == orm.ErrNoRows {
uAuth := &models.UserAuth{
UserId: user.Id,
AuthCode: authcode,
AuthCodeExp: authcodeExp,
CreateAt: time.Now(),
}
_, err = models.AddUserAuth(uAuth)
if err != nil {
e := fmt.Errorf("AddUserAuth err:%s", err)
log.Error(e.Error())
return protocol.NewErrWithMessage("1", e)
}
}
if err == nil {
uAuth.AuthCode = authcode
uAuth.AuthCodeExp = authcodeExp
uAuth.UpdateAt = time.Now()
err = models.UpdateUserAuthById(uAuth)
if err != nil {
e := fmt.Errorf("UpdateUserAuthById err:%s", err)
log.Error(e.Error())
return protocol.NewErrWithMessage("1", e)
}
}
return nil
}
//RefreshAccessToken 刷新token
func RefreshAccessToken(account string, token string) error {
return nil
}
// func buildNewUserAuth(uid int64,) *models.UserAuth {
// m:=&models.UserAuth{
// User
// }
// return nil
// }
... ... @@ -26,7 +26,7 @@ func CreateJWTToken(id int) (string, error) {
NotBefore: nowTime,
IssuedAt: nowTime,
ExpiresAt: 60 * 60 * 2, //过期时间
Issuer: "test_a",
Issuer: "mmm_oppmg",
},
UID: id,
}
... ...