CAPTCHA
- 目的・用途
本機能はリクエスト機能を用いてメールを送信時などに用いられるCAPTCHA(画像認証)機能を提供するAPIである。
利用方法
サンプルコード
CAPTCHA画像取得API
curl
/api/v1/captcha/image CAPTCHA結果検証API
curl -X POST -H "Content-Type: application/json"
/api/v1/captcha/validate -d '{ "key": "aaa", "calculation_result": 20 }'
利用可能なロール
| ロール | システム 管理者 |
リポジトリ 管理者 |
コミュニティ 管理者 |
登録ユーザー | 一般ユーザー | ゲスト (未ログイン) |
|---|---|---|---|---|---|---|
| 利用可否 | ○ | ○ | ○ | ○ | ○ | ○ |
機能内容
CAPTCHA画像取得API
- CAPTCHA画像を取得する。
CAPTCHA認証API
- CAPTCHAの計算結果を検証、計算結果が正しい場合に認証トークンを生成する。
関連モジュール
- weko_records_ui/captcha.py
- weko_records_ui/api.py
処理概要
CAPTCHA画像取得API
サーバー負荷軽減のためリクエストのアクセス制限機能をかける。
リクエスト
- API仕様書を参照
レスポンス
- API仕様書を参照
APIの処理の流れ
- CAPTCHA画像の生成を行う。
- CAPTCHA画像の計算結果をRedisに保存する。
- キー値は、画像生成日時とランダムなソルト値を組み合わせハッシュ化した値
- 認証トークンを発行し、Redisに保存する。
- 認証トークンは64文字のハッシュ値
- 設定値により、Redisの有効期限を設定する。
- レスポンスに設定するTTL値はRedisの有効期限より小さい値を設定する
CAPTCHA認証API
サーバー負荷軽減のためリクエストのアクセス制限機能をかける。
リクエスト
- API仕様書を参照
レスポンス
- API仕様書を参照
APIの処理の流れ
- CAPTCHAの計算結果を照合する。
- 計算結果が異なる場合は400エラー。
- 計算結果が正しい場合、Redisに格納されている認証トークンを返す。
- 計算結果が間違っている場合、該当キーに登録されたRedisの情報を削除する。
- 設定値により、Redisの有効期限を再設定する。
- 設定値は、「CAPTCHA画像取得API」 で利用している設定値と同じ値を利用する。
- CAPTCHAの計算結果を照合する。
- 更新履歴
| 日付 | GitHubコミットID | 更新内容 |
|---|---|---|
|
初版作成 |