Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

auth0-express

Express.jsアプリケーションにログイン・ログアウト・保護ルートなどの認証機能を追加する際に使用します。`express-openid-connect`を統合し、セッションベースの認証を実装します。

description の原文を見る

Use when adding authentication (login, logout, protected routes) to Express.js web applications - integrates express-openid-connect for session-based auth.

SKILL.md 本文

Auth0 Express Integration

express-openid-connect を使用して Express.js ウェブアプリケーションに認証を追加します。


前提条件

  • Express.js アプリケーション
  • Auth0 アカウントと設定済みのアプリケーション
  • Auth0 がまだセットアップされていない場合は、まず auth0-quickstart スキルを使用してください

使用しない場合

  • シングルページアプリケーション - クライアント側認証には auth0-reactauth0-vue、または auth0-angular を使用
  • Next.js アプリケーション - クライアントとサーバーの両方を処理する auth0-nextjs スキルを使用
  • モバイルアプリケーション - React Native/Expo には auth0-react-native を使用
  • ステートレス API - セッションベース認証の代わりに JWT 検証ミドルウェアを使用
  • マイクロサービス - サービス間認証には JWT 検証を使用

クイックスタートワークフロー

1. SDK をインストール

npm install express-openid-connect dotenv

2. 環境を設定

Auth0 CLI での自動セットアップは、完全なスクリプトについて Setup Guide を参照してください。

手動セットアップ:

.env を作成:

SECRET=<openssl-rand-hex-32>
BASE_URL=http://localhost:3000
CLIENT_ID=your-client-id
CLIENT_SECRET=your-client-secret
ISSUER_BASE_URL=https://your-tenant.auth0.com

シークレットを生成: openssl rand -hex 32

3. 認証ミドルウェアを設定

Express アプリ (app.js または index.js) を更新:

require('dotenv').config();
const express = require('express');
const { auth, requiresAuth } = require('express-openid-connect');

const app = express();

// Auth0 ミドルウェアを設定
app.use(auth({
  authRequired: false,  // すべてのルートで認証を必須にしない
  auth0Logout: true,    // ログアウトエンドポイントを有効化
  secret: process.env.SECRET,
  baseURL: process.env.BASE_URL,
  clientID: process.env.CLIENT_ID,
  issuerBaseURL: process.env.ISSUER_BASE_URL,
  clientSecret: process.env.CLIENT_SECRET
}));

app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

これにより以下が自動的に作成されます:

  • /login - ログインエンドポイント
  • /logout - ログアウトエンドポイント
  • /callback - OAuth コールバック

4. ルートを追加

// 公開ルート
app.get('/', (req, res) => {
  res.send(req.oidc.isAuthenticated() ? 'Logged in' : 'Logged out');
});

// 保護されたルート
app.get('/profile', requiresAuth(), (req, res) => {
  res.send(`
    <h1>Profile</h1>
    <p>Name: ${req.oidc.user.name}</p>
    <p>Email: ${req.oidc.user.email}</p>
    <pre>${JSON.stringify(req.oidc.user, null, 2)}</pre>
    <a href="/logout">Logout</a>
  `);
});

// ログイン/ログアウトリンク
app.get('/', (req, res) => {
  res.send(`
    ${req.oidc.isAuthenticated() ? `
      <p>Welcome, ${req.oidc.user.name}!</p>
      <a href="/profile">Profile</a>
      <a href="/logout">Logout</a>
    ` : `
      <a href="/login">Login</a>
    `}
  `);
});

5. 認証をテスト

サーバーを起動:

node app.js

http://localhost:3000 にアクセスしてログインフローをテストします。


詳細ドキュメント

  • Setup Guide - 自動セットアップスクリプト、環境設定、Auth0 CLI の使用方法
  • Integration Guide - 保護されたルート、セッション、API 統合、エラー処理
  • API Reference - 完全なミドルウェア API、設定オプション、リクエストプロパティ

よくある間違い

間違い修正方法
Auth0 ダッシュボードでコールバック URL を追加し忘れたAllowed Callback URLs に /callback パスを追加 (例: http://localhost:3000/callback)
SECRET がない、または弱いopenssl rand -hex 32 で安全なシークレットを生成し、.env に SECRET として保存
authRequired: true をグローバルに設定false に設定し、特定のルートで requiresAuth() ミドルウェアを使用
Auth0 で SPA タイプのアプリを作成したサーバー側認証には Regular Web Application タイプである必要があります
セッションシークレットがコードに公開されている常に環境変数を使用し、シークレットをハードコードしないでください
本番環境で baseURL が間違っているBASE_URL を本番ドメインと合致するように更新
ログアウト時に returnTo を処理していないAuth0 ダッシュボードで Allowed Logout URLs にドメインを追加

関連スキル

  • auth0-quickstart - 基本的な Auth0 セットアップ
  • auth0-migration - 別の認証プロバイダーから移行
  • auth0-mfa - 多要素認証を追加
  • auth0-cli - ターミナルから Auth0 リソースを管理

クイックリファレンス

ミドルウェアオプション:

  • authRequired - すべてのルートで認証を必須 (デフォルト: false)
  • auth0Logout - /logout エンドポイントを有効化 (デフォルト: false)
  • secret - セッションシークレット (必須)
  • baseURL - アプリケーション URL (必須)
  • clientID - Auth0 クライアント ID (必須)
  • issuerBaseURL - Auth0 テナント URL (必須)

リクエストプロパティ:

  • req.oidc.isAuthenticated() - ユーザーがログインしているか確認
  • req.oidc.user - ユーザープロファイルオブジェクト
  • req.oidc.accessToken - API 呼び出し用のアクセストークン
  • req.oidc.idToken - ID トークン
  • req.oidc.refreshToken - リフレッシュトークン

よくあるユースケース:

  • 保護されたルート → requiresAuth() ミドルウェアを使用 (ステップ 4 を参照)
  • 認証ステータスを確認 → req.oidc.isAuthenticated()
  • ユーザー情報を取得 → req.oidc.user
  • API を呼び出す → Integration Guide

参考資料

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
auth0
リポジトリ
auth0/agent-skills
ライセンス
Apache-2.0
最終更新
不明

Source: https://github.com/auth0/agent-skills / ライセンス: Apache-2.0

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: auth0 · auth0/agent-skills · ライセンス: Apache-2.0