Cackle-シングルサインオン

この記事では、単一の認証について説明します。これは、登録ユーザーの既存のデータベースを持つサイトに役立つ場合があります。



シングルサインオンにより、既存のサイトユーザーは、ソーシャルネットワーク(OAuth)またはOpenIDプロバイダーを使用したウィジェットでの承認を必要とせずに、サイトのユーザーアカウントに代わってCackleウィジェットを介してコメントを残すことができます。





これはどうですか?



単一の認証を設定するために、mcSSOAuth変数がウィジェットコードに追加され、その値は暗号化されたユーザーデータとウィジェットの秘密キーです。 キーの検証が成功した場合、データはシステムに保存され、ユーザーは承認されます。

変数の値はサーバー上で形成され、等しい必要があります。



<JSON Base64><><MD5 ><>< >









ユーザーJSONデータには次の属性が含まれます。



MD5要求署名は次のように形成されます

md5(<JSON Base64>< >)





Site API Key - API. "", WordPress .









, JSON , JSON {}.





www.example.org. Freeman. , Freeman Cackle , . , Freeman .



- Freeman :

id - 7, email - freeman@example.org, avatar - example.org/freeman.png, Site API Key - 123456789, is_user_logged_in() .



function cackle_auth(){ $timestamp = time(); $siteApiKey = 123456789; if (is_user_logged_in()){ $user = array( 'id' => '7', 'name' => 'Freeman', 'email' => 'freeman@example.org', 'avatar' => 'http://example.org/freeman.png' ); $user_data = base64_encode(json_encode($user)); } else{ $user = '{}'; $user_data = base64_encode($user); } $sign = md5($user_data . $siteApiKey . $timestamp); return "$user_data $sign $timestamp"; }




   md5(<JSON    Base64><   >) 
      





Site API Key - API. "", WordPress .





, JSON , JSON {}.





www.example.org. Freeman. , Freeman Cackle , . , Freeman .



- Freeman :

id - 7, email - freeman@example.org, avatar - example.org/freeman.png, Site API Key - 123456789, is_user_logged_in() .



function cackle_auth(){ $timestamp = time(); $siteApiKey = 123456789; if (is_user_logged_in()){ $user = array( 'id' => '7', 'name' => 'Freeman', 'email' => 'freeman@example.org', 'avatar' => 'http://example.org/freeman.png' ); $user_data = base64_encode(json_encode($user)); } else{ $user = '{}'; $user_data = base64_encode($user); } $sign = md5($user_data . $siteApiKey . $timestamp); return "$user_data $sign $timestamp"; }








md5(<JSON Base64>< >)





Site API Key - API. "", WordPress .









, JSON , JSON {}.





www.example.org. Freeman. , Freeman Cackle , . , Freeman .



- Freeman :

id - 7, email - freeman@example.org, avatar - example.org/freeman.png, Site API Key - 123456789, is_user_logged_in() .



function cackle_auth(){ $timestamp = time(); $siteApiKey = 123456789; if (is_user_logged_in()){ $user = array( 'id' => '7', 'name' => 'Freeman', 'email' => 'freeman@example.org', 'avatar' => 'http://example.org/freeman.png' ); $user_data = base64_encode(json_encode($user)); } else{ $user = '{}'; $user_data = base64_encode($user); } $sign = md5($user_data . $siteApiKey . $timestamp); return "$user_data $sign $timestamp"; }




md5(<JSON Base64>< >)





Site API Key - API. "", WordPress .









, JSON , JSON {}.





www.example.org. Freeman. , Freeman Cackle , . , Freeman .



- Freeman :

id - 7, email - freeman@example.org, avatar - example.org/freeman.png, Site API Key - 123456789, is_user_logged_in() .



function cackle_auth(){ $timestamp = time(); $siteApiKey = 123456789; if (is_user_logged_in()){ $user = array( 'id' => '7', 'name' => 'Freeman', 'email' => 'freeman@example.org', 'avatar' => 'http://example.org/freeman.png' ); $user_data = base64_encode(json_encode($user)); } else{ $user = '{}'; $user_data = base64_encode($user); } $sign = md5($user_data . $siteApiKey . $timestamp); return "$user_data $sign $timestamp"; }




md5(<JSON Base64>< >)





Site API Key - API. "", WordPress .









, JSON , JSON {}.





www.example.org. Freeman. , Freeman Cackle , . , Freeman .



- Freeman :

id - 7, email - freeman@example.org, avatar - example.org/freeman.png, Site API Key - 123456789, is_user_logged_in() .



function cackle_auth(){ $timestamp = time(); $siteApiKey = 123456789; if (is_user_logged_in()){ $user = array( 'id' => '7', 'name' => 'Freeman', 'email' => 'freeman@example.org', 'avatar' => 'http://example.org/freeman.png' ); $user_data = base64_encode(json_encode($user)); } else{ $user = '{}'; $user_data = base64_encode($user); } $sign = md5($user_data . $siteApiKey . $timestamp); return "$user_data $sign $timestamp"; }




md5(<JSON Base64>< >)





Site API Key - API. "", WordPress .









, JSON , JSON {}.





www.example.org. Freeman. , Freeman Cackle , . , Freeman .



- Freeman :

id - 7, email - freeman@example.org, avatar - example.org/freeman.png, Site API Key - 123456789, is_user_logged_in() .



function cackle_auth(){ $timestamp = time(); $siteApiKey = 123456789; if (is_user_logged_in()){ $user = array( 'id' => '7', 'name' => 'Freeman', 'email' => 'freeman@example.org', 'avatar' => 'http://example.org/freeman.png' ); $user_data = base64_encode(json_encode($user)); } else{ $user = '{}'; $user_data = base64_encode($user); } $sign = md5($user_data . $siteApiKey . $timestamp); return "$user_data $sign $timestamp"; }






cackle_auth関数は、ウィジェットコードが配置されている場所に配置する必要がある文字列を返します。

 <script type="text/javascript"> var mcSSOAuth = '<?php echo cackle_auth(); ?>'; //   </script>
      
      







ところで、 WordPress用のプラグインの新しいバージョンでは 、単一の承認が既に実装されています。 設定を確認することで有効にできます。



All Articles