認証周りの調整とfactoryの実装