downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

OAuthProvider::is2LeggedEndpoint> <OAuthProvider::consumerHandler
[edit] Last updated: Fri, 25 May 2012

view this page in

OAuthProvider::generateToken

(PECL OAuth >= 1.0.0)

OAuthProvider::generateTokenランダムなトークンを生成する

説明

final public static string OAuthProvider::generateToken ( int $size [, bool $strong = false ] )

擬似乱数を使ってランダムなバイトの文字列を生成します。

パラメータ

size

トークンの長さ。バイト単位で指定します。

strong

TRUE に設定すると、エントロピーとして /dev/random を使います。 それ以外の場合は、ブロックされることのない /dev/urandom を使います。 このパラメータは、Windows では無視されます。

返り値

生成されたトークンをバイト文字列で返します。

エラー / 例外

strong パラメータが TRUE のときは、 (十分な量の初期ランダムデータがなかったなどの理由で) 代替 rand() 実装を使うことになった場合に E_WARNING レベルのエラーが発生します。

例1 OAuthProvider::generateToken() の例

<?php
$p 
= new OAuthProvider();

$t $p->generateToken(4);

echo 
strlen($t),  PHP_EOL;
echo 
bin2hex($t), PHP_EOL;

?>

上の例の出力は、 たとえば以下のようになります。

4
b6a82c27

注意

注意:

十分な量のランダムデータがシステムから得られなかった場合、この関数は PHP の rand() 関数の実装を使って残りのバイトを埋めます。

参考



add a note add a note User Contributed Notes OAuthProvider::generateToken
carlosouza at me dot com 28-Mar-2012 11:32
Be careful when setting the 'strong' parameter to true.

If you system doesn't have enough entropy your script will block which can cause timeouts in other parts of your code.

In my case, the most serious symptom was my script blocking when trying to read from /dev/random and causing a 'MySQL has gone away' error.

Hopefully this saves someone the trouble when deciding to use /dev/random entropy

 
show source | credits | stats | sitemap | contact | advertising | mirror sites