による安全なJSONウェブトークン私はPHPで安全なトークンを生成するためにFirebase Token Generatorを使用しています:クライアント側でPHP&Firebase
const DEFAULT_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
date_default_timezone_set('Europe/London');
try {
$generator = new TokenGenerator(DEFAULT_SECRET);
$token = $generator
->setOptions(array(
'expires' => strtotime('now + 1 minute'),
'debug' => true
))
->setData(array('uid' => 'exampleID'))
->create();
} catch (TokenException $e) {
echo "Error: ".$e->getMessage();
}
$response = array(
'token' => $token
);
echo json_encode($response);
私はJSONオブジェクトとしてトークンを取得するために、JSONリクエストを使用しています:
$.getJSON('http://localhost/firebase/index.php', function(json) {
var jwtToken = json.token;
launchFirebase(jwtToken);
});
function launchFirebase(token) {
var fb = new Firebase(FirebaseURL);
fb.authWithCustomToken(token, function(error, authData) {
if (error) {
alert("There was an error posting your vote. Please try again later.");
} else {
checkEmail();
}
});
function checkEmail(){
new Firebase(FirebaseURL)
.orderByChild('email')
.startAt(vote.email)
.endAt(vote.email)
.once('value', function(snap) {
var result = snap.val();
callback(result);
});
}
}
これでFirebaseのデータを読み込めるようになりました。私のセキュリティ上の懸念は誰でもソースコードを表示し、PHPスクリプト(http://localhost/firebase/index.php)に直接アクセスしてトークンを取得できることです。
そして、彼らは、このようなAPIの呼び出しを介してすべてのデータを表示できます。https://examplesite.firebaseio.com/.json?print=pretty&auth=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
PHPスクリプトをセキュアに維持するためのベストプラクティスは何ですか?