code: func (s *IdentityService) GetWebSession(user, sid string) (services.WebSession, error) {
  	if user == "" {
  		return nil, trace.BadParameter("missing username")
  	}
  	if sid == "" {
  		return nil, trace.BadParameter("missing session id")
  	}
  	item, err := s.Get(context.TODO(), backend.Key(webPrefix, usersPrefix, user, sessionsPrefix, sid))
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  	session, err := services.GetWebSessionMarshaler().UnmarshalWebSession(item.Value)
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  	// this is for backwards compatibility to ensure we
  	// always have these values
  	session.SetUser(user)
  	session.SetName(sid)
  	return session, nil
  }
docs: // GetWebSession returns a web session state for a given user and session id