Skip to content
Back to skills

Railway Auth

ASecurity

Railway authentication and token management. Use when logging into Railway, creating API tokens, setting up CI/CD authentication, or verifying Railway credentials.

  • 3 stars
  • 0 votes
  • 0 copies
  • 12 views
  • Added February 8, 2026
devopsgobashnodedockergitapici/cdsecurity

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 4 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add adaptationio/Skrillz --skill railway-auth --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Railway Auth?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Railway Auth
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/adaptationio-railway-auth/badge)](https://www.skillsdirectory.com/skills/adaptationio-railway-auth)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: railway-auth
description: Railway authentication and token management. Use when logging into Railway, creating API tokens, setting up CI/CD authentication, or verifying Railway credentials.
---

# Railway Authentication

Manage Railway authentication for CLI, API, and CI/CD workflows.

## Overview

Railway supports multiple authentication methods for different use cases:
- **Interactive Login**: Browser-based OAuth for developers
- **Browserless Login**: Device code flow for SSH/Codespaces/headless
- **API Tokens**: Programmatic access for automation and CI/CD

## When to Use

- Setting up Railway CLI for first time
- Authenticating in CI/CD pipelines
- Creating API tokens for automation
- Verifying authentication status
- Troubleshooting auth issues

---

## Operations

### Operation 1: Interactive Login

Standard browser-based authentication for local development.

**Command**:
```bash
railway login
```

**Process**:
1. Opens browser to Railway OAuth page
2. Authenticate with GitHub/email
3. CLI receives authentication token
4. Token stored in `~/.railway/config.json`

**Verification**:
```bash
railway whoami
# Output: Logged in as: your-email@example.com
```

**Use When**: Local development, first-time setup

---

### Operation 2: Browserless Login

Device code authentication for headless environments.

**Command**:
```bash
railway login --browserless
```

**Process**:
1. CLI generates device code
2. Display URL and code to user
3. User visits URL on any device
4. Enters code to authenticate
5. CLI receives token after approval

**Example Output**:
```
To authenticate, visit: https://railway.app/cli-auth
Enter code: ABCD-1234
Waiting for authentication...
```

**Use When**:
- SSH sessions
- GitHub Codespaces
- Remote servers
- Docker containers
- Any environment without browser

---

### Operation 3: Token-Based Authentication

Use API tokens for programmatic access and CI/CD.

**Token Types**:

| Type | Scope | Header | Use Case |
|------|-------|--------|----------|
| Account Token | All personal + team resources | `Authorization: Bearer <TOKEN>` | Full API access |
| Team Token | Team resources only | `Team-Access-Token: <TOKEN>` | Team automation |
| Project Token | Single environment | `Project-Access-Token: <TOKEN>` | Scoped deployments |

**Creating Tokens**:
1. Visit https://railway.com/account/tokens
2. Click "Create Token"
3. Select token type and scope
4. Copy token (shown only once!)

**CLI Authentication with Token**:
```bash
# For Project Tokens
export RAILWAY_TOKEN=<your-project-token>

# For Account/Team Tokens
export RAILWAY_API_TOKEN=<your-account-or-team-token>

# Verify
railway whoami
```

**API Authentication**:
```bash
# Account Token
curl -H "Authorization: Bearer $RAILWAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"query { me { name email } }"}' \
  https://backboard.railway.com/graphql/v2

# Project Token
curl -H "Project-Access-Token: $RAILWAY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"query { projectToken { projectId } }"}' \
  https://backboard.railway.com/graphql/v2
```

**Use When**: CI/CD pipelines, automation scripts, API integrations

---

### Operation 4: Verify Authentication

Check current authentication status.

**Commands**:
```bash
# Check who you're logged in as
railway whoami

# Check current project context
railway status

# Verify token via API
curl -s -H "Authorization: Bearer $RAILWAY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"query { me { name } }"}' \
  https://backboard.railway.com/graphql/v2
```

**Troubleshooting Auth Issues**:

| Issue | Solution |
|-------|----------|
| "Not logged in" | Run `railway login` |
| "Not Authorized" (API) | Check token type matches header |
| Token expired | Create new token at railway.com/account/tokens |
| Wrong project context | Run `railway link` to re-link project |

---

## CI/CD Integration

### GitHub Actions

```yaml
name: Deploy to Railway
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Railway CLI
        run: npm install -g @railway/cli

      - name: Deploy
        env:
          RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
        run: railway up --ci
```

**Setup**:
1. Create Project Token in Railway dashboard
2. Add as `RAILWAY_TOKEN` secret in GitHub repo settings
3. Use `--ci` flag for non-interactive deployment

### GitLab CI

```yaml
deploy:
  stage: deploy
  image: node:20
  script:
    - npm install -g @railway/cli
    - railway up --ci
  variables:
    RAILWAY_TOKEN: $RAILWAY_PROJECT_TOKEN
  only:
    - main
```

---

## Token Security Best Practices

1. **Never commit tokens** - Use environment variables or secrets managers
2. **Use minimal scope** - Project tokens for single-project CI/CD
3. **Rotate regularly** - Delete and recreate tokens periodically
4. **Monitor usage** - Check Railway dashboard for unusual activity
5. **Separate environments** - Different tokens for dev/staging/prod

---

## Quick Reference

| Task | Command |
|------|---------|
| Login (browser) | `railway login` |
| Login (headless) | `railway login --browserless` |
| Check auth | `railway whoami` |
| Logout | `railway logout` |
| Set token (CLI) | `export RAILWAY_TOKEN=xxx` |
| API auth header | `Authorization: Bearer <token>` |

---

## References

- [token-types.md](references/token-types.md) - Detailed token comparison and usage
- [token-troubleshooting.md](references/token-troubleshooting.md) - **Common auth issues and fixes**

---

## Related Skills

- [railway-api](../railway-api/SKILL.md) - GraphQL API automation
- [railway-automation](../railway-automation/SKILL.md) - CI/CD patterns
- [railway-project-management](../railway-project-management/SKILL.md) - Project setup

Files in this skill

  • SKILL.md5.7 KB
  • references/token-troubleshooting.md4.8 KB
  • references/token-types.md6.9 KB
  • scripts/verify-auth.sh4.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.