ホームページ  >  記事  >  ウェブフロントエンド  >  WeChat エンタープライズ アカウント開発のための WeChat 出席 Cookie の使用_javascript スキル

WeChat エンタープライズ アカウント開発のための WeChat 出席 Cookie の使用_javascript スキル

PHP中文网
PHP中文网オリジナル
2016-05-16 15:39:502165ブラウズ

前の記事 では、WeChat エンタープライズ アカウント開発のための WeChat 出席の Baidu マップの位置付けについて紹介しました。次に、この記事を通じて WeChat エンタープライズ アカウント開発のための WeChat 出席 Cookie の使用方法について学びます。内容は以下の通りです。

WeChat エンタープライズ アカウント開発を使用するたびに WeChat 出席を使用する: WeChat ユーザー情報と Web ページのセッションの関係は、WeChat インターフェースを呼び出しますが、これは少し遅いと WeChat 公式も推奨しています。 Cookie の使用方法については、まったくわかりませんでした。

私は当初、サーバー上のクライアントデータを取得するには 2 つの方法があると考えていました。1 つは URL にクエリ文字列を置く方法で、もう 1 つはフォームに入れて送信する方法です。以前は、主にクライアント側で使用されていましたが、Cookie 内のデータをサーバーに直接送信することはできませんでした。それは、Cookie 内のデータを読み取って、それを隠しフィールドに入れることによって行われます。フォームを作成し、サーバーに投稿します。

明らかに、WeChat 出席は URL を入力するプロセスであり、データを投稿するプロセスはありません。 URL を入力した後でのみ、ユーザーまたは Ajax を介して URL を送信できます。つまり、Cookie内のデータを直接サーバーに送信する方法はないようです。行き詰まりがあるようだ。そこで、Cookie についてもう一度調べてみたところ、Cookie はサーバーに積極的に送信されているようですが、投稿とは別の場所に送信されていることがわかりました。もちろん、関連するドキュメントは見つかりませんでしたが、テストを通じてそれを発見しました。自分でCookieを設定していれば、URLを入力するたびにCookieが送信され、当然サーバー上でCookieの値を読み取ることができます。そのとき初めて、パスワードを記憶するという実際の実装原則を本当に理解しました。 Cookie の値を読み取って非表示フィールドに入れ、ajax 経由でサーバーに送信すればログインの必要がなくなるわけではありません。

Cookie データがサーバーに送信され、セッション ID も Cookie を通じてサーバーに送信されていることがわかります。

フロントエンド js 読み込み、設定方法 Cookie:

function setCookie(name, value) {//两个参数,一个是cookie的名子,一个是值 
 var Days = 30; //此 cookie 将被保存 30 天 
 var exp = new Date(); //new Date("December 31, 9998"); 
 exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); 
 document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString(); 
} 
function getCookie(name) {//取cookies函数   
 var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)")); 
 if (arr != null) return unescape(arr[2]); return null; 
}

CSharp サーバー操作 Cookie:

Set Cookie

HttpCookie cookie = new HttpCookie("UserCode", username); 
   cookie.Expires = DateTime.Now.AddDays(10);// (365 * 24 * 3600);   
   this.Response.AppendCookie(cookie); 
   HttpCookie cookieDeviceId = new HttpCookie("DeviceId", rt.DeviceId); 
   cookieDeviceId.Expires = DateTime.Now.AddDays(10);// (365 * 24 * 3600);   
   this.Response.AppendCookie(cookieDeviceId);

Cookie の読み取り:

HttpCookie ttHttpCookie = this.Request.Cookies.Get("UserCode"); 
HttpCookie ttHttpCookieDeviceId = this.Request.Cookies.Get("DeviceId"); 
string code = Request.QueryString["code"]; 
if (ttHttpCookie == null || ttHttpCookieDeviceId == null) 
{ 
 WeiApi(code); 
} 
else { 
 string username = ttHttpCookie.Value; 
 string DeviceId = ttHttpCookieDeviceId.Value; 
 if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(DeviceId)) 
 { 
  WeiApi(code); 
 } 
 else { 
  new AppException("读取Cookies UserCode=" + username + ",DeviceId=" + DeviceId); 
  initSession(username, DeviceId); 
 } 
}

上記の内容は次のとおりですWeChat エンタープライズ アカウント開発における WeChat 出席 Cookie の使用については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。