Skip to main content
Glama
skyasu2

OpenManager Vibe V4 MCP Server

by skyasu2
LoginPage.jsx3.08 kB
import React, { useState } from 'react'; import { useNavigate, useLocation } from 'react-router-dom'; import { useAuth } from '../context/AuthContext'; const LoginPage = () => { const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const [isLoading, setIsLoading] = useState(false); const { login } = useAuth(); const navigate = useNavigate(); const location = useLocation(); // 리디렉션 경로 (기본값: 대시보드) const from = location.state?.from?.pathname || '/'; const handleSubmit = async (e) => { e.preventDefault(); if (!username.trim() || !password.trim()) { setError('사용자 이름과 비밀번호를 모두 입력하세요.'); return; } try { setIsLoading(true); setError(''); // 로그인 시도 const result = await login({ username, password }); if (result.success) { // 로그인 성공 - 이전 페이지 또는 홈으로 리디렉션 navigate(from, { replace: true }); } else { // 로그인 실패 setError(result.error); } } catch (err) { setError('로그인 중 오류가 발생했습니다. 나중에 다시 시도하세요.'); } finally { setIsLoading(false); } }; return ( <div className="login-page"> <div className="login-container"> <h2 className="login-title">OpenManager Vibe V4</h2> <p className="login-subtitle">로그인하여 서버 대시보드에 접속하세요</p> {error && ( <div className="login-error"> {error} </div> )} <form onSubmit={handleSubmit} className="login-form"> <div className="form-group"> <label htmlFor="username">사용자 이름</label> <input id="username" type="text" value={username} onChange={(e) => setUsername(e.target.value)} placeholder="사용자 이름 입력" disabled={isLoading} /> </div> <div className="form-group"> <label htmlFor="password">비밀번호</label> <input id="password" type="password" value={password} onChange={(e) => setPassword(e.target.value)} placeholder="비밀번호 입력" disabled={isLoading} /> </div> <button type="submit" className="login-button" disabled={isLoading} > {isLoading ? '로그인 중...' : '로그인'} </button> </form> <div className="login-info"> <p>테스트 계정:</p> <ul> <li>관리자: admin / admin123</li> <li>사용자: user / user123</li> </ul> </div> </div> </div> ); }; export default LoginPage;

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/skyasu2/openmanager-vibe-v4'

If you have feedback or need assistance with the MCP directory API, please join our Discord server