Skip to content

/mypage 公開トークン失効ポリシー ​

目的 ​

候補者の /mypage・/hr-mypage 公開URLを自動で無効化し、トークン漏えい時の被害継続を防ぐ。

発行からの有効期間(1ヶ月) ​

  • 公開トークンは 発行から1ヶ月 で期限切れになる(public_token_expires_at に発行時点+1ヶ月をセット)。
  • 対象: candidates(作成時のトークン自動発行・再発行)、hr_candidates(再発行・書類選考通過時の発行)。
  • 期限切れ後は管理画面の「再発行」で新しいURLを発行できる(新トークン + 新たに1ヶ月の有効期限)。 ただし下記の終了ステータスの候補者は再発行しても復活しない。
  • ポリシー導入時に有効期限未設定だった既存トークンは、移行猶予として適用時点+1ヶ月で失効する (20260803100000_backfill_public_token_expiration.sql)。

失効対象ステータス ​

candidates.status_id が以下のいずれかに変更された時点で失効する。

  • 11: 入社
  • 12: 音信不通
  • 13: 活動終了(ヒアリング)
  • 14: 活動終了(キャリア)
  • 19: 活動終了(選考中)

挙動 ​

  • candidates.public_token_expires_at に現在時刻をセットする(有効期限が残っていても即時失効)。
  • 終了ステータスで失効したトークンは 復活しない(再発行しても有効期限は延長されない)。
  • /mypage へのアクセスは 404(無効トークン扱い)となる。

実装方針 ​

  • 有効期限の計算・判定は backend/src/domain/services/PublicTokenPolicy.ts に集約する。
  • バックエンドの候補者ステータス更新処理で失効日時を設定する。
  • 公開APIは public_token_expires_at IS NULL OR > now() の条件を満たす場合のみ有効。
  • 既に終了状態の候補者はマイグレーションで一括失効する。

ユーザー向け文言 ​

  • 管理画面のURL表示欄と /mypage の無効画面に、 「弊社(notari)担当者にお問い合わせください」 の文言を追加する。