code: func (handle *ContextHandle) Login(session mPkcs11.SessionHandle) error {
  
  	handle.lock.RLock()
  	defer handle.lock.RUnlock()
  
  	if handle.pin == "" {
  		return errors.New("No PIN set")
  	}
  	err := handle.ctx.Login(session, mPkcs11.CKU_USER, handle.pin)
  	if err != nil && err != mPkcs11.Error(mPkcs11.CKR_USER_ALREADY_LOGGED_IN) {
  		return errors.Errorf("Login failed [%s]", err)
  	}
  	return nil
  }
docs: // Login logs a user into a token