メインコンテンツまでスキップ

認証

reCamera は JWT Token 認証を使用します。ログインに成功すると、デバイスは Set-Cookie レスポンスヘッダーを介して Token を返します。以降のリクエストでは、この Token を必ず付与する必要があります。

エンドポイント概要

メソッドパス目的ログイン必須
GET/system/keyRSA 公開鍵の取得(パスワード変更用)いいえ
POST/system/loginログインして Token を取得いいえ
GET/system/check初回ログインかどうかを確認いいえ
PUT/system/password管理者パスワードを変更はい

ログイン

リクエスト

POST /cgi-bin/entry.cgi/system/login
Content-Type: application/json

リクエストボディ:

{
"sUserName": "admin",
"sPassword": "your_password"
}
フィールド説明
sUserNameログインユーザー名。デフォルトは admin
sPasswordログインパスワード。平文で送信されます

レスポンス

{
"iStatus": 0,
"iAuth": 1,
"sWaittime": 0
}
フィールド説明
iStatus0 = パスワードが正しい、-1 = パスワードが間違っている、-3 = 一時的にロック中
iAuth1 = ログイン成功、0 = ログイン失敗、2 = パスワード変更が必要
sWaittimeロック時の待機時間(秒)

Token の取得

ログインに成功すると、レスポンスヘッダーに Set-Cookie が含まれます:

Set-Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9...; Max-Age=86400; Path=/

Token の有効期間は Max-Age によって決まり、デフォルトは 86400 秒(24 時間)です。

Token の使用

認証が必要なすべてのリクエストは、Cookie ヘッダーに Token を含める必要があります:

Cookie: token=<JWT_TOKEN>

例えば、デバイス情報を取得するには:

GET /cgi-bin/entry.cgi/system/device-info
Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9...

Token が欠落しているか有効期限切れの場合、デバイスは次のように返します:

{
"code": 401,
"message": "Unauthorized: Invalid token or NO token provided"
}

ログインロックアウト

デバイスは IP ベースの失敗試行回数制限を実装しています。パスワードを繰り返し間違えると iLoginAttempts が増加します。上限に達すると、デバイスは iStatus=-3sWaittime の値を返します。再試行する前に、ロックアウトが解除されるまで待つ必要があります。

初回ログインの確認

GET /cgi-bin/entry.cgi/system/check

レスポンス:

{
"bFirst": false
}

bFirst=true は、デバイスが初回ログインフローにあり、デフォルトパスワードを変更する必要があることを示します。

パスワード変更

パスワードを変更するには、まず RSA 公開鍵を取得し、その公開鍵で旧パスワードと新パスワードを暗号化してから送信します。

公開鍵の取得

GET /cgi-bin/entry.cgi/system/key

レスポンス:

{
"sPublicKey": "-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEA...\n-----END RSA PUBLIC KEY-----"
}
フィールド説明
sPublicKeyRSA 公開鍵。パスワード変更時のパスワード暗号化に使用します

パスワードの暗号化

パスワードの SHA256 ハッシュを 16 進文字列として計算し、その後公開鍵を用いて RSA PKCS1v15 パディングで暗号化し、最後に結果を Base64 エンコードします。

変更の送信

PUT /cgi-bin/entry.cgi/system/password
Content-Type: application/json

リクエストボディ:

{
"sUserName": "admin",
"sOldPassword": "<encrypted_old_password>",
"sNewPassword": "<encrypted_new_password>"
}
フィールド説明
sUserNameユーザー名
sOldPassword暗号化された旧パスワード
sNewPassword暗号化された新パスワード

成功時のレスポンス:

{
"code": 0,
"message": "success"
}

エラーコード:

コード説明
10001新しいパスワードが弱すぎます
10002Token の有効期限が切れています。再度ログインしてください

パスワードを変更すると、現在の Token が無効になる場合があります。再度ログインして新しい Token を取得してください。

テクニカルサポートと製品ディスカッション

当社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じて選べる複数のコミュニケーションチャネルをご用意しています。

Loading Comments...