https://github.com/jinyphp/admin
last
https://github.com/jinyphp/admin
Last synced: 4 months ago
JSON representation
last
- Host: GitHub
- URL: https://github.com/jinyphp/admin
- Owner: jinyphp
- License: mit
- Created: 2024-02-07T09:15:07.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-11-21T16:35:29.000Z (7 months ago)
- Last Synced: 2025-11-21T18:22:05.701Z (7 months ago)
- Language: PHP
- Homepage:
- Size: 1.18 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: license.md
- Security: docs/security/README.md
Awesome Lists containing this project
README
# Jiny Admin Package
JinyPHP `Admin` 관리자 패키지입니다.
Laravel 기반의 강력한 관리자 백엔드 시스템을 제공하는 패키지로, 보안, 인증, 권한 관리 등 엔터프라이즈급 관리 기능을 포함합니다.
## 📋 주요 기능
### 🔐 보안 기능
- **2FA (Two-Factor Authentication)** - Google Authenticator 지원
- **IP 화이트리스트** - 특정 IP만 관리자 접근 허용
- **CAPTCHA 통합** - reCAPTCHA, hCAPTCHA 지원
- **세션 관리** - 동시 로그인 제한, 세션 추적
- **비밀번호 정책** - 주기적 변경, 복잡도 검증
- **로그인 시도 제한** - 무차별 공격 방지
### 👥 사용자 관리
- **계층적 권한 관리** - 관리자 타입별 권한 설정
- **사용자 활동 로그** - 모든 관리자 활동 추적
- **프로필 관리** - 아바타, 개인정보 설정
- **대량 사용자 관리** - CLI 명령어 지원
### 📧 알림 시스템
- **이메일 템플릿** - 커스터마이징 가능한 템플릿
- **SMS 통합** - 다중 SMS 제공자 지원
- **Webhook** - Slack, Discord 등 외부 서비스 연동
- **실시간 알림** - 브라우저 알림 지원
### 🛠 개발 도구
- **Artisan 명령어** - 관리자 CRUD 자동 생성
- **Livewire 컴포넌트** - 반응형 UI 컴포넌트
- **RESTful API** - API 엔드포인트 제공
- **다국어 지원** - i18n 지원
## 📁 디렉토리 구조
```
vendor/jiny/admin/
├── src/
│ ├── Console/ # Artisan 명령어
│ ├── Http/
│ │ ├── Controllers/ # 컨트롤러
│ │ ├── Middleware/ # 미들웨어
│ │ ├── Livewire/ # Livewire 컴포넌트
│ │ └── Trait/ # HTTP 트레이트
│ ├── Models/ # Eloquent 모델
│ ├── Services/ # 비즈니스 로직
│ │ ├── Captcha/ # CAPTCHA 서비스
│ │ ├── Email/ # 이메일 서비스
│ │ ├── Notification/ # 알림 서비스
│ │ ├── Security/ # 보안 서비스
│ │ └── SMS/ # SMS 서비스
│ ├── Traits/ # 재사용 가능한 트레이트
│ └── JinyAdminServiceProvider.php
├── config/ # 설정 파일
├── database/
│ ├── migrations/ # 마이그레이션
│ ├── seeders/ # 시더
│ └── factories/ # 팩토리
├── resources/
│ └── views/ # Blade 템플릿
├── routes/ # 라우트 정의
├── stubs/ # 코드 생성 템플릿
└── tests/ # 테스트 파일
```
## 🚀 설치
### 요구사항
- PHP 8.2+
- Laravel 12.x
- MySQL/PostgreSQL/SQLite
- Composer 2.x
### 설치 방법
1. Composer를 통한 패키지 설치:
```bash
composer require jiny/admin
```
2. 데이터베이스 마이그레이션 실행:
```bash
php artisan migrate
```
3. 설정 파일 발행 (선택사항):
```bash
php artisan vendor:publish --provider="Jiny\Admin\JinyAdminServiceProvider"
```
4. 초기 관리자 생성:
```bash
php artisan admin:user-create
```
## ⚙️ 설정
### 환경 변수 (.env)
```env
# 2FA 설정
ADMIN_2FA_ENABLED=true
ADMIN_2FA_ISSUER="Your App Name"
# CAPTCHA 설정
ADMIN_CAPTCHA_DRIVER=recaptcha
RECAPTCHA_SITE_KEY=your-site-key
RECAPTCHA_SECRET_KEY=your-secret-key
# IP 화이트리스트
ADMIN_IP_WHITELIST_ENABLED=true
# 세션 설정
ADMIN_SESSION_LIFETIME=120
ADMIN_CONCURRENT_SESSIONS=1
# 비밀번호 정책
ADMIN_PASSWORD_EXPIRY_DAYS=90
ADMIN_PASSWORD_MIN_LENGTH=8
```
## 📚 사용법
### 기본 라우트
- `/admin` - 관리자 대시보드
- `/admin/login` - 관리자 로그인
- `/admin/users` - 사용자 관리
- `/admin/settings` - 시스템 설정
### Artisan 명령어
```bash
# 관리자 CRUD 생성
php artisan admin:make ResourceName
# 사용자 관리
php artisan admin:user-create
php artisan admin:user-delete
php artisan admin:users --list
# 보안 관리
php artisan admin:ip-unblock
php artisan admin:unblock-password
php artisan admin:captcha-logs
# 유지보수
php artisan admin:ip-cleanup
php artisan admin:sync-usertype-count
```
### 미들웨어 사용
```php
// routes/web.php
Route::middleware(['admin', 'ip.whitelist', 'captcha'])->group(function () {
Route::get('/admin/dashboard', [DashboardController::class, 'index']);
});
```
### Livewire 컴포넌트
```blade
{{-- 관리자 테이블 --}}
@livewire('jiny-admin::admin-table', ['model' => 'User'])
{{-- 관리자 폼 --}}
@livewire('jiny-admin::admin-create', ['model' => 'User'])
@livewire('jiny-admin::admin-edit', ['model' => 'User', 'id' => $id])
```
## 🔒 보안 기능 상세
### 2FA 구현
```php
use Jiny\Admin\Services\Security\TwoFactorService;
$twoFactor = new TwoFactorService();
$qrCode = $twoFactor->generateQRCode($user);
$verified = $twoFactor->verify($user, $code);
```
### CAPTCHA 통합
```php
use Jiny\Admin\Services\Captcha\CaptchaManager;
$captcha = app(CaptchaManager::class);
$verified = $captcha->verify($request->get('g-recaptcha-response'));
```
### IP 화이트리스트
```php
use Jiny\Admin\Models\AdminIpWhitelist;
AdminIpWhitelist::create([
'ip_address' => '192.168.1.1',
'description' => 'Office IP',
'is_active' => true
]);
```
## 🧪 테스트
```bash
# 전체 테스트 실행
php artisan test
# 특정 테스트 실행
php artisan test --filter=AdminTest
```
## 📄 라이센스
이 패키지는 MIT 라이센스 하에 배포됩니다.
## 🤝 기여하기
버그 리포트, 기능 제안, 풀 리퀘스트는 언제나 환영합니다!
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## 📞 지원
- 이슈: [GitHub Issues](https://github.com/jinyphp/admin/issues)
- 문서: [공식 문서](https://jinyphp.com/docs/admin)
- 이메일: support@jinyphy.com
## 🎯 로드맵
- [ ] GraphQL API 지원
- [ ] 다크 모드 지원
- [ ] 실시간 대시보드
- [ ] AI 기반 보안 감지
- [ ] 멀티 테넌시 지원
---
**Jiny Admin** - Enterprise-grade Admin Panel for Laravel
Made with ❤️ by JinyPHP Team