ハッシュ機能

概要

KARTE TalkではユーザーIDを送信することにより複数端末間でユーザーを紐付けることが可能です。
ハッシュ機能を利用することで、なりすましによるユーザー情報やメッセージ等の閲覧を防ぐことができます。

🚧

推奨

ユーザーIDを送信する場合はハッシュ機能の設定を強く推奨します。

使い方

プロジェクトごとに発行される秘密鍵を利用して、「ユーザーID+トークンの有効期限(ISO8601形式)」を SHA-256 によりハッシュ化してトークンを生成します。
krt.local_settings 関数を利用してトークンとトークンの有効期限を設定しておくと、ユーザーIDが送られるたびにトークンが正しいか検証されます。

KARTE管理画面の「組織/プロジェクト管理」>「セキュリティ設定」よりハッシュ機能を有効化することができます。ハッシュ検証テストを行うことで、ハッシュ化の実装が正しいかどうかを検証することができます。

サンプルコード

const crypto = require('crypto');

const userId = 'user123';
const secretKey = 'oK6H3WKWEcQke0S0tHuF3gQn9KmTrnGr'
const date = new Date();
date.setDate(date.getDate()+1);

const signature = crypto.createHmac('sha256', Buffer.from(secretKey, 'hex').update(`${userId}${date}`).digest('hex');