permit.go 989 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package service
  2. import (
  3. "context"
  4. "go-common/library/log"
  5. "go-common/library/net/http/blademaster/middleware/permit"
  6. )
  7. const (
  8. _sessUnKey = "username"
  9. _sessUIDKey = "uid"
  10. )
  11. // Login .
  12. func (s *Service) Login(ctx context.Context, mngsid, dsbsid string) (sid, uname string, err error) {
  13. si := s.session(ctx, mngsid)
  14. var username string
  15. if si.Get(_sessUnKey) == nil {
  16. if username, err = s.dao.VerifyDsb(ctx, dsbsid); err != nil {
  17. log.Error("s.dao.VerifyDsb error(%v)", err)
  18. return
  19. }
  20. si.Set(_sessUnKey, username)
  21. si.Set(_sessUIDKey, s.userIds[username])
  22. if err = s.dao.SetSession(ctx, si); err != nil {
  23. log.Error("s.dao.SetSession(%v) error(%v)", si, err)
  24. err = nil
  25. }
  26. } else {
  27. username = si.Get(_sessUnKey).(string)
  28. }
  29. sid = si.Sid
  30. uname = username
  31. return
  32. }
  33. // session .
  34. func (s *Service) session(ctx context.Context, sid string) (res *permit.Session) {
  35. if res, _ = s.dao.Session(ctx, sid); res == nil {
  36. res = s.dao.NewSession(ctx)
  37. }
  38. return
  39. }