2016-09-13 5 views
3

私のサーバーには、私のFirebase Realtime Databaseを読むいくつかのPHPファイルがあります。 Firebase's documentsによると、Firebase PHP Clientを実行するためにカスタムトークンを設定する必要があります。 Firebaseの文書には、私はこれを返す必要があると言います。PHP Firebaseヘルプ - JWTを設定する

return JWT::encode($payload, $private_key, "RS256"); 

JWTクラスをどのように正確に参照しますか?私はJWTライブラリをダウンロードしましたが、これをプロジェクトに実装する方法がわかりません。私は主にモバイル開発者であり、PHPの経験はほとんどありません。

+0

あなたが作曲を使用していますか? – sonam

答えて

8

firebase/php-jwt libraryはコンポーザーを使用しています。あなたがアンドロイド開発の背景から来た場合、ComposerはJavaのMavenに似たPHPの依存関係マネージャです。あなたはphpのrequire/include関数を使ってPHPでクラスをインポートする方法を知る必要があります。あなたは作曲家を使うためにPHPでいくつかの経験が必要です。

次のサンプルコードを使用することができ作曲せずにfirebase/PHP-JWTライブラリを使用するには:(私は「JWT」フォルダ内のライブラリをダウンロードした)

<?php 

require_once 'jwt/src/BeforeValidException.php'; 
require_once 'jwt/src/ExpiredException.php'; 
require_once 'jwt/src/SignatureInvalidException.php'; 
require_once 'jwt/src/JWT.php'; 


use \Firebase\JWT\JWT; 

$key = "example_key"; 
$token = array(
    "iss" => "http://example.org", 
    "aud" => "http://example.com", 
    "iat" => 1356999524, 
    "nbf" => 1357000000 
); 

/** 
* IMPORTANT: 
* You must specify supported algorithms for your application. See 
* https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40 
* for a list of spec-compliant algorithms. 
*/ 
$jwt = JWT::encode($token, $key); 
$decoded = JWT::decode($jwt, $key, array('HS256')); 

print_r($decoded); 

/* 
NOTE: This will now be an object instead of an associative array. To get 
an associative array, you will need to cast it as such: 
*/ 

$decoded_array = (array) $decoded; 

/** 
* You can add a leeway to account for when there is a clock skew times between 
* the signing and verifying servers. It is recommended that this leeway should 
* not be bigger than a few minutes. 
* 
* Source: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#nbfDef 
*/ 
    JWT::$leeway = 60; // $leeway in seconds 
    $decoded = JWT::decode($jwt, $key, array('HS256')); 
?> 
+0

ありがとうございました@sonam u save my day .. – Manish

関連する問題