概要
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');