From Theory to Practice: Adding Two-Factor Authentication to Node.js