重构认证组件