クリックはご利用のデバイスによってはタップしていただくことになります。
現在はPHPで書かれたプログラムを公開しています
* phpバージョンはVer.7.4以上必須、Ver.8.3以上を推奨。
Qypherを導入される方は以下が可能かご確認ください
httpsアクセスで応答できる (http://は不可)
Qypher APIではAPI内で通信内容を暗号化していますが、さらに安全のためhttps通信ができる環境にのみ提供しています。
Qypher APIは暗号化ライブラリのOpenSSLを使用しています。
Qypher APIは表示部分とQRコードの解析、Qypher本体との通信にJavaScriptを使用しています。
Qypher APIは、APIが解析したデータを外部ドメイン(https://qypher.be-on.biz)にあるQypherに送信し、Qypherのデータと照会した解析結果を受け取ります。
input type="file" や canvas要素を使ったDOM操作が使用できる
Qypher APIはQypherカードのアップロードやQRコード解析、ボタンの操作などにDOM操作を使用しています。
Qypher APIではログイン前とログイン後のHTMLに独自要素の埋め込みをします。
サーバーサイドコード(PHP等)の設置・実行ができる
Qypher APIでは、秘密鍵を含めたPHPファイルの設置が必要になります。このファイルはQypherとの通信の暗号化と復号化、ワンタイムキーの確認など、重要な役目を担います。
上記が確認できましたら設定に進みましょう
まずQypherにログインしてください。
* ログイン方法は「Qypherの使い方」に書いてあります。
個人情報のQypher導入、導入先情報をクリックします。
導入先ウェブ名 :
Qypherを導入するウェブサイトの正式名称をご記入ください。
トップページのウェブアドレス :
ウェブサイトのランディングページやインデックスページのアドレスをhttpsからご記入ください。
サンドボックス :
「サンドボックス」を選んでいる間は、本番環境のログイン画面には「調整中」と表示されログインはできません。さまざまなテストが終了しましたら、「本番環境」を選び「更新」をクリックしてください。
ご登録者数 :
Qypherからご登録のウェブサイトにログインしたユーザー数です。同じユーザーが複数回ログインしてもカウントは1です。
保護者認可が必要な年齢 :
保護者の確認が必要な年齢を設定します。必要なければ「制限なし」を選んでください。
閲覧可能な年齢 :
年齢制限のあるウェブサイトの場合は年齢を設定します。必要なければ「制限なし」を選んでください。
使用言語 :
将来的にQypher導入ウェブサイト一覧を作成した時に、閲覧可能な言語別の欄を作る予定です。ただし、ブラウザの自動翻訳機能がこのまま発展するようならば、この欄は不要になる可能性もあります。
取得希望のデータ :
Qypherから取得したいユーザーデータを選んでください。取得できるデータはご利用のプランにより変化します。「プランリスト」をご確認ください。
利用規約のウェブアドレス :
利用規約のURLをhttpsからご記入ください。
プライバシーポリシーのウェブアドレス :
プライバシーポリシーのURLをhttpsからご記入ください。
ログイン後のウェブアドレス :
ユーザーがログインできた後に表示するページのアドレスをサンドボックス用、本番環境用の両方ともhttpsからご記入ください。
ウェブフックのウェブアドレス :
ウェブフックの情報を受け取るURLをサンドボックス用、本番環境用の両方ともhttpsからご記入ください。ご利用にならない場合は空欄で大丈夫です。ウェブフックはProプラン以上でご利用できます。
API秘密鍵を置くフォルダ :
「APIセットをZIPでダウンロード」をクリックした時にQypherが「秘密鍵ファイル」を生成します。この「秘密鍵ファイル」を設置するフォルダをhttpsからご記入ください。
API秘密鍵の言語の種類 :
現在はphpのご提供のみですが、他の言語へも対応していく予定です。その時はこちらからご希望の言語をお選びいただけるようになります。
ご利用プラン :
ご利用プランをお選びください。詳細はプランリストをお読みください。
ログインページ、API秘密鍵、利用規約、プライバシーポリシー、ウェブフックとログイン後のページは同じドメイン中に、サブドメインをご利用の場合は同じサブドメインの中に設置してください。
Proプラン以上の方で複数のウェブサイトに導入されている方は、「APIセットをZIPでダウンロード」上のセレクトの中から編集したいウェブ名をお選びください。
設定ができたらダウンロードしましょう
「APIセットをZIPでダウンロード」をクリックするとダウンロードフォルダーに「QypherAPIset_(ウェブサイト名).zip」という名前の圧縮ファイルがダウンロードされますので、それをダブルクリックする、などして解凍して(開いて)ください。
ファイル構成
QypherAPIset_(ウェブサイト名)/
├─ apiScript.txt ← ログインページの任意の場所にこの中身をコピーして貼り付けてください
├─ 50文字以上のランダムな英数字による公開鍵(1).php ← 秘密鍵処理を行うPHPファイル (以降「秘密鍵ファイル」と呼びます)
├─ getData.php ← ログイン後に表示するページにこの中身をコピーして貼り付けてください。
├─ README.txt ← 取扱説明書
└─ Sandbox/
├─ Sandbox_apiScript.txt ← ( サンドボックス用 ) ログインページの任意の場所にこの中身をコピーして貼り付けてください
├─ Sandbox_50文字以上のランダムな英数字による公開鍵(2).php ← ( サンドボックス用 ) 秘密鍵ファイル
├─ Sandbox_getData.php ← ( サンドボックス用 ) ログイン後に表示するページにこの中身をコピーして貼り付けてください。
├─ nine.jpg ← サンドボックス用Qypherカード 9歳の仮ユーザー (保護者認可が必要な動作を確認できます。)
├─ eleven.jpg ← サンドボックス用Qypherカード 11歳の仮ユーザー (保護者認可の境界チェックに利用できます。)
├─ thirty.jpg ← サンドボックス用Qypherカード 30歳の仮ユーザー (大人として通常ログインできます。)
└─ guardian.jpg ← サンドボックス用Qypherカード 9歳と11歳の保護者の仮ユーザー (保護者承認フローで読み込むことで承認テストが行えます。)
サンドボックスで試してみましょう
サンドボックスでは、Qypherのログインに関して様々な実験や体験を行うことができます。
サンドボックスからログインした場合、全ての動きはサンドボックスの中で完結し、本番環境には反映されません。
サンドボックス内でのEメールはサンドボックスをご利用されているユーザー宛にのみ送られます。
- Sandbox_apiScript.txt の中に記載されている内容を全てコピーし、サンドボックス用ログインページのお好きな場所に貼り付けてください。
<input type="hidden" id="QypherAnyKey" value="">のvalue属性に引き継ぎたいデータを入れることでログイン後に任意のデータを引き継ぐことができます。
( 記入内容にHTMLタグ、JavaScriptコード、ファイルパス等を含めた場合、自動的に無効化処理が行われます。有害なvalueを検知した場合、Qypherのご利用ができなくなる場合があります。 )
- Qypher導入先情報の中にあるAPI秘密鍵を置くフォルダに設定した場所にサンドボックス用秘密鍵ファイルを置いてください。
本番環境用と同じ場所に設置してください。 このファイルは絶対に改変しないでください。改変するとQypher本体側の判定で無効化され、ログイン要求が拒否される場合があります。
ファイル名を変更しないでください。Qypher 側で識別できなくなります。
アップロード後、ファイルのパーミッションが正しく設定されていることを確認してください。
推奨 604もしくは644
*Windowsサーバーをご利用の場合は、上記の「604 / 644」のパーミッション設定は不要ですが、ファイルがWebサーバー(IISなど)から読み取れるよう、適切なアクセス権限を付与してください。
- Sandbox_getData.txt の中に記載されている内容を全てコピーし、サンドボックス用ログイン後のページの大枠としてご使用ください。
if($Qypher["success"]){} の中にログイン成功後の内容を、 else{} の中にログインが失敗した場合の内容をご記入ください。
ログインが成功した場合の初期値には、「このページをリロードすると再度ログインが必要になります。」という内容が入っています。
ログイン後のページに貼り付けたphpプログラムが秘密鍵ファイルを呼びだし、そのデータを復号化します。
この時、ログイン時間を暗号化したものをワンタイムパスワードとして検証しています。この時刻が5秒以上違う場合、ログインは拒否されます。
これは、ユーザーがログアウトした後、他人がログインページまで戻ってリロードした際に、ログインできてしまうのを防ぐための大切な措置です。
セキュリティの穴を作ってしまう可能性もありますので、秘密鍵ファイルの中の変更は絶対にしないでください。
Qypherからの利用者データを取得しましょう
$Qypherの配列で取得できます。
$Qypher["success"] ← true = ログイン成功、false = ログイン失敗
$Qypher["uuid"] ← ログイン記録用のQypher識別子 ( Qypherへの問い合わせにご利用ください )
$Qypher["Qypher_ID"] ← ユーザーの固有番号 ( どのユーザーがログインしたのかを判別するのにご利用ください )
$Qypher["login_time(UTC)"] ← YYYY-MM-DDThh:ii:ssZ ( ログインした時間を世界標準時で取得できます )
$Qypher["meetsAgeReq"] ← 「サイトが定めた年齢条件を満たすか」の結果(1=満たす / 0=満たさない)。ログイン成功時は基本1。実年齢や生年月日そのものは渡りません。
$Qypher["ageReq"] ← そのサイトが設定した年齢しきい値(0=未設定)
$Qypher["guardianApproved"] ← 実年齢が保護者確認のしきい値(needGuardian。未設定なら13歳。13歳未満は設定値に関わらず常に対象)未満か(1/0)。Qypherは保護者同意なしにログインを完了しないため、1 は同意を得てログインした年少ユーザーです
$Qypher["under10"] ← 10歳未満かどうかの粗いフラグ(1/0)。子ども向けの表示・文言を切り替えたいとき用です。実年齢や生年月日は渡らず、10歳の境界で一度だけ変わるため繰り返しログインしても誕生日は割り出せません。
$Qypher["under13"] ← 13歳未満かどうかの粗いフラグ(1/0)。under10 と同じく、実年齢を渡さずに年齢帯で表示を切り替えるためのものです。13歳の境界で一度だけ変わります。
$Qypher["QypherAnyKey"] ← ログインページから引き継ぎたいデータ ( apiScript.txt内のid="QypherAnyKey" のvalue属性に記入したデータです )
$Qypher["json"] ← 全てのデータのJSON形式 ( JavaScriptでの処理などにご利用ください )
初期設定でQypherから渡されるデータは上記の内容です。Qypher導入先情報の中で取得希望のデータの各項目にチェックを入れると渡されるデータが増えます。ただし、ユーザーが送信を許可していない、もしくは登録していないデータは空になります。
$Qypher["surname"] ← 姓
$Qypher["givenName"] ← 名
$Qypher["name_reading"] ← よみかた
$Qypher["nickname"] ← ニックネーム
$Qypher["email"] ← Eメールアドレス
$Qypher["birthday"] ← 生年月日
$Qypher["postalCode"] ← 郵便番号
$Qypher["country"] ← 国 / 地域
$Qypher["area1"] ← 州 / 県 / 都道府県
$Qypher["area2"] ← 市区町村
$Qypher["address"] ← 通り名 / 番地
$Qypher["building"] ← 建物名
$Qypher["room"] ← 部屋名
例: echo `{$Qypher["surname"]} {$Qypher["givenName"]}様、Qypherへようこそ。`;
個人情報の取り扱いには十分ご注意ください。
本番環境の準備をしましょう
本番環境では、サンドボックスの時と使用する公開鍵と秘密鍵が違います。サンドボックスの中身をそのまま複製しても本番環境は作動しません。
サンドボックスと同じ手順で本番環境を設置します。
- apiScript.txt の中に記載されている内容を全てコピーし、本番環境用ログインページのお好きな場所に貼り付けてください。
<input type="hidden" id="QypherAnyKey" value="">のvalue属性に引き継ぎたいデータを入れることでログイン後に任意のデータを引き継ぐことができます。
( 記入内容にHTMLタグ、JavaScriptコード、ファイルパス等を含めた場合、自動的に無効化処理が行われます。有害なvalueを検知した場合、Qypherのご利用ができなくなる場合があります。 )
- Qypher導入先情報の中にあるAPI秘密鍵を置くフォルダに設定した場所に本番環境用秘密鍵ファイルを置いてください。
サンドボックス用と同じ場所に設置してください。 このファイルは絶対に改変しないでください。改変するとQypher本体側の判定で無効化され、ログイン要求が拒否される場合があります。
ファイル名を変更しないでください。Qypher 側で識別できなくなります。
アップロード後、ファイルのパーミッションが正しく設定されていることを確認してください。
推奨 604もしくは644
*Windowsサーバーをご利用の場合は、上記の「604 / 644」のパーミッション設定は不要ですが、ファイルがWebサーバー(IISなど)から読み取れるよう、適切なアクセス権限を付与してください。
- getData.txt の中に記載されている内容を全てコピーし、本番環境用ログイン後のページの大枠としてご使用ください。
if($Qypher["success"]){} の中にログイン成功後の内容を、 else{} の中にログインが失敗した場合の内容をご記入ください。
ログインが成功した場合の初期値には、「このページをリロードすると再度ログインが必要になります。」という内容が入っています。
- Qypherにログインし、Qypher 導入先情報の中のサンドボックスを本番環境にして更新をクリックしてください。
ログインページを見た時に「設置場所を確認中です」と表示されている場合は、サンドボックス用を使っていないか、複数のページでQypherをご利用されている方は、そのウェブ用のものを使用しているかご確認ください。
ウェブフックを使って情報を確実なものにしましょう
Proプラン以上ではウェブフックがご利用できます。ユーザーのログイン後に情報をうまく処理できなかった時のために、ウェブフックをご活用ください。
Proプラン以上の方がAPIをダウンロードすると、webhook.phpとSandbox_webhook.phpの二つがフォルダに入っています。このままこれに書き足す形でご利用ください。
データの取得はログイン後のページで取得する方法と同じです。
ファイルを設置した場所をQypher 導入先情報の中のウェブフックにhttpsから記入し更新をクリックしてください。
ウェブフックを使わない時はQypher 導入先情報の中のウェブフックを空欄にして更新をクリックしてください。