feat: Add authentication debug and test scripts
- Add debug-auth.sh to diagnose authentication issues - Checks .env file content - Verifies environment variables in container - Tests bcrypt password verification - Shows config loading status - Displays recent auth logs - Add test-auth-api.sh to test API endpoints directly - Tests login endpoint with curl - Shows raw API responses - Tests auth status endpoint These scripts help troubleshoot authentication problems by showing exactly what's happening at each step of the auth process. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Executable
+71
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "======================================"
|
||||
echo "MinIO WebUI - Auth Debug"
|
||||
echo "======================================"
|
||||
echo ""
|
||||
|
||||
# Check container
|
||||
if docker ps | grep -q minio-webui-backend-dev; then
|
||||
CONTAINER="minio-webui-backend-dev"
|
||||
else
|
||||
CONTAINER="minio-webui-backend"
|
||||
fi
|
||||
|
||||
echo "1. Checking .env file on host:"
|
||||
echo "------------------------------"
|
||||
grep "ADMIN_PASSWORD_HASH\|JWT_SECRET" .env | head -20
|
||||
echo ""
|
||||
|
||||
echo "2. Checking environment in container:"
|
||||
echo "------------------------------------"
|
||||
docker exec $CONTAINER sh -c 'echo "ADMIN_PASSWORD_HASH=$ADMIN_PASSWORD_HASH" | head -c 80'
|
||||
echo ""
|
||||
docker exec $CONTAINER sh -c 'echo "JWT_SECRET=$JWT_SECRET" | head -c 40'
|
||||
echo ""
|
||||
|
||||
echo "3. Testing password directly in container:"
|
||||
echo "-----------------------------------------"
|
||||
docker exec $CONTAINER node -e "
|
||||
const bcrypt = require('bcrypt');
|
||||
const testHash = '$2b$12$LQv7c3SijBJLhSHPDOLkDe7YfPzFaXhJNXLKqFsFC37GA9xc1wSNi';
|
||||
const envHash = process.env.ADMIN_PASSWORD_HASH;
|
||||
|
||||
console.log('Test hash (admin123):', testHash);
|
||||
console.log('Env hash:', envHash ? envHash.substring(0, 20) + '...' : 'NOT SET');
|
||||
console.log('Hashes match:', testHash === envHash);
|
||||
|
||||
bcrypt.compare('admin123', testHash).then(result => {
|
||||
console.log('Test password "admin123" with hardcoded hash:', result);
|
||||
});
|
||||
|
||||
if (envHash) {
|
||||
bcrypt.compare('admin123', envHash).then(result => {
|
||||
console.log('Test password "admin123" with env hash:', result);
|
||||
}).catch(err => {
|
||||
console.log('Error testing with env hash:', err.message);
|
||||
});
|
||||
}
|
||||
"
|
||||
|
||||
echo ""
|
||||
echo "4. Checking config loading:"
|
||||
echo "--------------------------"
|
||||
docker exec $CONTAINER node -e "
|
||||
const config = require('./src/config');
|
||||
console.log('Config auth:', {
|
||||
hasPasswordHash: !!config.auth.adminPasswordHash,
|
||||
hashLength: config.auth.adminPasswordHash ? config.auth.adminPasswordHash.length : 0,
|
||||
hashPrefix: config.auth.adminPasswordHash ? config.auth.adminPasswordHash.substring(0, 7) : 'NOT SET',
|
||||
hasJwtSecret: !!config.auth.jwtSecret,
|
||||
env: config.app.env
|
||||
});
|
||||
"
|
||||
|
||||
echo ""
|
||||
echo "5. Recent backend logs:"
|
||||
echo "----------------------"
|
||||
docker logs --tail 20 $CONTAINER 2>&1 | grep -E "(Password|AUTH|Login|401)"
|
||||
|
||||
echo ""
|
||||
echo "======================================"
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "======================================"
|
||||
echo "MinIO WebUI - Test Auth API"
|
||||
echo "======================================"
|
||||
echo ""
|
||||
|
||||
# Test with curl
|
||||
echo "Testing login with curl..."
|
||||
echo "--------------------------"
|
||||
|
||||
RESPONSE=$(curl -s -X POST http://localhost:7510/api/auth/login \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"password":"admin123"}' \
|
||||
-w "\nHTTP_STATUS:%{http_code}")
|
||||
|
||||
HTTP_STATUS=$(echo "$RESPONSE" | grep "HTTP_STATUS:" | cut -d: -f2)
|
||||
BODY=$(echo "$RESPONSE" | sed '/HTTP_STATUS:/d')
|
||||
|
||||
echo "Response Status: $HTTP_STATUS"
|
||||
echo "Response Body:"
|
||||
echo "$BODY" | jq . 2>/dev/null || echo "$BODY"
|
||||
|
||||
echo ""
|
||||
echo "Testing auth status..."
|
||||
echo "---------------------"
|
||||
curl -s http://localhost:7510/api/auth/status | jq . 2>/dev/null || curl -s http://localhost:7510/api/auth/status
|
||||
|
||||
echo ""
|
||||
echo "======================================"
|
||||
Reference in New Issue
Block a user