首頁 > web前端 > js教程 > 微信企業號開發之微信考勤Cookies的使用_javascript技巧

微信企業號開發之微信考勤Cookies的使用_javascript技巧

PHP中文网
發布: 2016-05-16 15:39:50
原創
2213 人瀏覽過

上篇文章給大家介紹了微信企業號開發之微信考勤百度地圖定位,接下來透過本文學習微信企業號開發之微信考勤Cookies的使用,具體內容如下。

使用微信考勤,每次使用微信企業號開發:微信用戶資訊和web網頁的session的關係這個裡邊的方法,調用微信的接口,有點慢,微信官方也推薦使用Cookies,但如何使用Cookies,自己卻一直沒有搞清楚。

原來一直以為在服務端取得客戶端的資料有兩個方法,一種就是查詢字串放在URL上,一種就是放在form中,post提交,自己以前也使用過但主要是在客戶端使用,從來沒法把Cookies中的資料直接提交到服務端,即使有也是透過把Cookies中的資料讀取出來後放入form中的隱藏字段,然後post到服務端。

顯然微信考勤這類其實就是一個URL,在進入URL的過程中,沒有什麼post資料的過程。只有進入URL之後再透過使用者提交,或ajax提交。總之似乎無法直接把Cookies中的資料直接提交給服務端。似乎陷入了僵局。於是我自己再一次研究了Cookies,發現Cookies似乎是主動提交到服務端的,但和post是提交的位置不一樣,當然我沒有找到相關文檔,是測試發現的。只要自己設定了Cookies,每次進入URL都會提交Cookies,自然就可以在服務端讀取到Cookies的值了。這時才真正明白記住密碼的真正實現原理。並不是把Cookies的值讀出來,放入隱藏字段,然後透過ajax提交到服務端,就可以免登陸了。

可以看到Cookies的資料到了服務端,sessionID也是透過Cookies這種方式傳到服務端的。

前端js讀取,設定Cookies的方法:

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服務端操作Cookies:

CSharp服務端操作Cookies:

< Cookies
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);
登入後複製

讀取Cookies:
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); 
 } 
}
登入後複製


內容給以上給🎜>大家介紹了微信企業號開發之微信考勤Cookies的使用,更多相關內容請關注PHP中文網(www.php.cn)!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板