I would much rather have this method be one that re-binds a selected module onto a user. That way, once the module has authenticated the user, it can ask to be rebound, and can then simply use it's own XBlock fields to store state.