これはJoomlaでもチュートリアルでもありません(そして私はphpで非常に錆びています)...
最初のいくつかの注意点:* memcacheは安全ではなく、この実装ではユーザー名/パスワードを入力する必要があります。ファイアウォールの背後に安全に配置されていることを確認するか、最初に暗号化してください。必要に応じて、その点についていくつかの指針を示してください。* memcacheは、メモリが不足した場合にデータをドロップしないことが保証されていません。実際には信頼できますが、アプリはそれを適切に処理する必要があります。そのようなデータを失いたくない場合は、memcacheの代わりにcouchbaseのようなものを使用してください。*ログインに応答してトークンを返すだけでは、おそらくあまり役に立ちません。トークンをユーザー名やその他の情報と一緒にjson化して、2回目のAPI呼び出しを行わなくてもアプリを起動して実行できるようにします。*以下のコードはエラーの場合を処理しません。それが明らかでない場合は、それらすべてをより詳細に呼び出すことができます。
私の場合は、memcacheを使用してトークンを永続化し、そのトークンを最初に渡されたユーザー名とパスワードにマップします。memcache時間を使用して、有効期限を無料で取得できます。
ユーザー名/パスワードをサーバーに送信します(理想的にはhttps経由)。ランダムな文字列またはGUIDを作成します(例:http://php.net/manual/en/function.uniqid.phpまたはhttp://www.lateralcode.com/creating-a-random-string-with-php/) 、これはあなたのトークンですユーザー名/パスワードをそのトークンをキーとしてmemcacheに保存しますタイムアウトを設定します
$token = createToken("user1234", "pass2324");
print "Token: $token \n\n";
$credentials = credtialsFromToken($token);
print "Credentials from the token: ";
var_dump($credentials);
print "\n\n";
function setup() {
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
}
function createToken($user, $pass) {
$TOKEN_EXPIRE_TIME=60 * 60 * 24 * 30;
$credentials = array(
"user" => $user,
"pass" => $pass,
);
$token = uniqid( );
memcache_set($token, credentials, 'some variable', 0, 30);
return $token;
}
function credtialsFromToken($token) {
$credentials = memcache_get($token);
return $credentials;
}
トークンが正しくないか期限切れの場合、ヌルのクレデンシャルが返され、ログインする必要があります。
編集:phpで動作するように見える関数にクリーンアップしました...