Skip to main content
Glama
NPM_AUTH_SETUP.md3.48 kB
# NPM Authentication Setup ## Quick Setup for This Project The project includes a pre-configured `.npmrc` file that uses environment variables: 1. **Set your NPM token as environment variable:** ```bash export NPM_TOKEN="npm_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ``` 2. **Or add to your shell profile:** ```bash # Add to ~/.bashrc, ~/.zshrc, or ~/.profile echo 'export NPM_TOKEN="npm_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"' >> ~/.zshrc source ~/.zshrc ``` 3. **Verify authentication:** ```bash npm whoami ``` 4. **Publish:** ```bash npm publish ``` ## Local NPM Authentication Methods ### Method 1: Using NPM Token (Recommended for Automation) 1. **Create an NPM automation token**: - Log in to npmjs.com - Go to Account Settings → Access Tokens - Click "Generate New Token" → Choose "Automation" type - Copy the generated token 2. **Store the token locally**: Create or edit `~/.npmrc`: ```bash echo "//registry.npmjs.org/:_authToken=YOUR_NPM_TOKEN" >> ~/.npmrc ``` Or set it for this project only in `.npmrc` (in project root): ```bash # Copy the example file cp .npmrc.example .npmrc # Edit .npmrc with your token (if not using environment variable) echo "//registry.npmjs.org/:_authToken=YOUR_NPM_TOKEN" > .npmrc ``` 3. **Using environment variable** (more secure): ```bash # Add to ~/.bashrc or ~/.zshrc export NPM_TOKEN="npm_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" # Then in .npmrc: //registry.npmjs.org/:_authToken=${NPM_TOKEN} ``` ### Method 2: Interactive Login ```bash npm login # Follow the prompts for username, password, email, and 2FA code ``` This creates an entry in `~/.npmrc` automatically. ### Method 3: Using npm CLI with Token ```bash npm config set //registry.npmjs.org/:_authToken YOUR_NPM_TOKEN ``` ## Security Best Practices 1. **Never commit `.npmrc` with tokens** to version control - Add `.npmrc` to `.gitignore` if storing tokens there - Use environment variables for tokens 2. **Use different tokens for different purposes**: - Personal development: Read-only or Publish token - CI/CD: Automation token (like your NPM_TOKEN in GitHub secrets) - Team projects: Shared organization tokens 3. **Token permissions**: - **Read-only**: Can only install packages - **Publish**: Can publish new versions - **Automation**: Best for CI/CD, can publish but has restrictions ## Publishing with Token Once authenticated, publish with: ```bash npm publish ``` Or with explicit registry: ```bash npm publish --registry https://registry.npmjs.org/ ``` ## Verifying Authentication Check if you're logged in: ```bash npm whoami ``` ## GitHub Actions Setup (Already Done) Your `NPM_TOKEN` is already stored in GitHub secrets. For automated publishing via GitHub Actions, use: ```yaml - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: "18" registry-url: "https://registry.npmjs.org" - name: Publish to NPM run: npm publish env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} ``` ## Troubleshooting 1. **401 Unauthorized**: Token is invalid or expired 2. **403 Forbidden**: Token lacks publish permissions 3. **E402**: Package requires payment (for private packages) ## Revoking Tokens If a token is compromised: 1. Go to npmjs.com → Account Settings → Access Tokens 2. Find the token and click "Revoke" 3. Generate a new token and update your configurations

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/docdyhr/mcp-wordpress'

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