Skip to content

使い方 — 総合バンドル

01-minimal は動く最小の OP です。02-bundle本番に近い形 の OP 実装が全体としてどう見えるかを示します。ログイン処理、MFA、captcha、リスク判定、scope カタログ、信頼プロキシの正規化、推奨ロガーまでをまとめています。

ソース: examples/02-bundle/main.go

含まれるレイヤー

レイヤーオプション / 型
ログインop.LoginFlow + op.PrimaryPassword
MFAop.RuleAlways(op.StepTOTP{...})
Captchaop.RuleAfterFailedAttempts(n, op.StepCaptcha{...})
リスクop.RuleRisk(threshold, step) + LoginFlow.Risk の assessor
クライアントop.WithStaticClients(...)(型付きクライアント定義)
scopeop.WithScope(op.PublicScope(...)) / op.WithScope(op.InternalScope(...)) を scope ごとに
プロファイルop.WithProfile(...)(既定はコメントアウト、FAPI を見たければオン)
信頼プロキシop.WithTrustedProxies(cidrs ...)
ロガーop.WithLogger(slog.Logger)

チェックリストとして使う

例は意図的に長めです — コピーして不要な部分を削るための「ひな型」として使うのが目的です。実装をゼロから書きそうになったら、まず 02-bundle を見て見落としがないか確認してください。

sh
(cd examples/02-bundle && go run -tags example .)

何を確認したいときに見るか

質問見るべき箇所
01-minimal から最小限増やすなら?LoginFlow ブロック + WithStaticClients
MFA + リスクをひとつのフローに乗せたいRules スライス
discovery の scopes_supported の整え方WithScope(PublicScope(...)) の連鎖
推奨される slog logger の形WithLogger
FAPI 2.0 にするには?WithProfile 行のコメントアウトを外す

続きはこちら