1. 程式人生 > >移動端使用token向伺服器端驗證使用者身份

移動端使用token向伺服器端驗證使用者身份

       最近做一個移動APP的專案,當用戶登陸一段時間後從客戶端請求伺服器時需要驗證使用者身份,通常在web中的做法都是使用session或cooike來保持會話,但是放到手機端肯定是不合適的。我們使用qq或其他一些手機軟體是都知道,登陸一次以後通常是不再需要再次登入的,這樣如果使用session來實現也是可以的,但是如果把session的生命週期設為永久有效的話,對伺服器端的資源消耗是非常大的。因此提出了使用token,首先說什麼是token,翻譯成中文就是“令牌”的意思。

       在Javaweb中servlet、Struts、sping都有token機制(令牌驗證機制),但是在web專案中token的作用是用來防止表單重複提交,一般不是用來驗證身份,而且,在web中token的值在每次跟伺服器互動後都會發生變化,也就是說每次伺服器都會生成一個新的token傳送給客戶端(瀏覽器)。如果是用來讓移動端驗證身份是很難實現的,但是我們可以使用token驗證的思想,讓伺服器端為每個使用者生成一個特定的字串作為他們的“令牌”,伺服器將這個字串儲存下來,當用戶登陸一段時間後需要向伺服器請求資料時帶上這個標示即可,不必每次都驗證使用者名稱密碼。生成這個字串我使用的是使用者名稱+密碼+使用者登入時間使用MD5加密,下面貼上MD5加密程式碼。

用到的第三方包:commons-codec-1.8.jar

import org.apache.commons.codec.digest.DigestUtils;



/**
 * 建立日期:2015-1-5下午4:29:38
 * 作者:admin
 *TODO
 **/
public class MD5_2 {
	public static void main(String[] args) {
		String str1 = DigestUtils.md5Hex("fghhfjgfhkghj");
		System.out.println(str1);
                System.out.println(str1.length());
 }
}


相關推薦

移動使用token伺服器驗證使用者身份

       最近做一個移動APP的專案,當用戶登陸一段時間後從客戶端請求伺服器時需要驗證使用者身份,通常在web中的做法都是使用session或cooike來保持會話,但是放到手機端肯定是不合適的。

Android GET,POST伺服器傳送資料(傳送)

//目錄結構 //strings.xml字元常量檔案 <?xml version="1.0" encoding="utf-8"?>  <resources>      <string name="title">通過Get和Pos

在WinForm中通過HTTP協議伺服器上傳檔案

相信用ASP.NET寫一個上傳檔案的網頁,大家都會寫,但是有沒有人想過通過在WinForm中通過HTTP協議上傳檔案呢? 有些人說要向伺服器端上傳檔案,用FTP協議不是很簡單嗎?效率又高,為什麼還要使用HTTP協議那麼麻煩呢?這裡面有幾個原因: (1)FTP伺服器的部署相對麻

伺服器傳送請求 GET POST

1.向伺服器端傳送請求並攜帶資料 baseURL:主機地址 真正的url在後邊+?+資料鍵值對(用&分隔多個) 問號後即查詢字串 e.g.http://192.168.1.100:8081/s

客戶瀏覽器伺服器發起http請求的全過程

http協議的參考:http://blog.csdn.net/hefeng6500/article/details/75081047 (1)瀏覽器先搜尋自身的DNS快取 (2)作業系統搜尋自身的DNS快取(瀏覽器沒有找到快取或者快取已經失效) (3)讀取本地的HOST檔案

JavaWEB前端JS伺服器傳送物件

最近專案中需要做一個關於表單資料提交的功能,由於引數很多,比如需要儲存多個學生的資料。對於這種業務當然有一種比較常見的解決方法,是使用逗號、下劃線、或者分號分割,然後傳到後臺拆分後再進行操作,這種方法需要前臺拼接,後臺解析,稍顯繁複且容易出錯。 對於搞JAVA程式的我來說,

記筆記:C# Socket客戶監聽伺服器處理方案【同步】

方案主要功能:        (1)客戶端同步監聽來自伺服器端的資料(開啟子執行緒監聽)        (2)客戶端向伺服器端傳送資料(主執行緒傳送,並控制)        

【遊戲後】遊戲伺服器開發的一些建議(轉載)

摘要: 本文作為遊戲伺服器端開發的基本大綱,是遊戲實踐開發中的總結。第一部分專業基礎,用於指導招聘和實習考核, 第二部分遊戲入門,講述遊戲伺服器端開發的基本要點,第三部分服務端架構,介紹架構設計中的一些基本原則。希望能幫到大家一 專業基礎1.1 網路1.1.1 理解TCP/I

【TCP通訊】多客戶連線一個伺服器總結

Windows下TCP通訊,多個客戶端連線伺服器端。 一、伺服器端流程實現如下: 1、通過socket函式,建立基於流式型別的socket,可名為serverSocket; 2、呼叫bind函式,繫結本地的監聽埠號和本地IP地址; 3、呼叫listen函式,開始監聽客戶端請求。其中該函式第二個引數指定了最大

WebService 安卓客戶呼叫和伺服器搭建

這段時間做了一個小程式,想通過WebService來供安卓客戶端呼叫。先說一下安卓端的程式。之前沒有進行過安卓+Java的程式設計,就先找網上的一個查詢手機號碼歸屬地例子來測試WebService。 在Android平臺呼叫Web Service需要依賴於第三

Netty框架服務主動客戶通訊

專案場景: 一個車聯網專案,很多很多臺車輛會定時像服務端發包,所以都是使用TCP長連線的方式。現在有一個需求是,服務端需要向客戶端主動的傳送升級命令,由於使用的事件驅動的Netty框架,我們怎麼才能由服務端主動的向客服端通訊呢? 解決方案: pac

安裝oracle 11g 64位伺服器和oracle 11g 32位客戶時,客戶無法連線伺服器的問題。

1.按照網上教程安裝64位伺服器端Oracle和32位客戶端Oracle,在開始選單點選client檔案下的Net Configuration Assistant,如圖所示 2.本地網路服務配置->新增->服務名為orcl->選擇TCP->主機名

關於客戶與資料庫伺服器的時間同步問題

這是一個做C/S的管理軟體開發時經常被忽略的問題,客戶端的時間與伺服器的時間如果有偏差,資料統計、報表等等肯定會有“意外”的情況發生。 意圖很簡單:從資料庫伺服器獲取到時間,根據這個時間修改當前客戶端電腦時間。 用Sql的函式getdate(),是比較容易的。 我們是基於do

Android實戰簡易教程-第六十六槍(伺服器搭建和伺服器Json資料互動)

學習Android有一段時間了,對伺服器端有很深的好奇,決定對伺服器端的實現進行一些研究,這裡實現了一個簡單的小例子,用於獲取伺服器端的json資料,例子很簡單,適合初學者學習使用。伺服器端首先我們搭建伺服器端,伺服器端使用struct2架構,對該架構不熟悉的人可以花一點時間

Android客戶+mysql+springmvc伺服器實現登陸的小案例

首先是客戶端 通過輸入使用者名稱+密碼實現登入 點選登入後向伺服器傳送http請求 伺服器收到請求後驗證使用者名稱密碼是否與mysql資料庫上的相應欄位是否一致 然後返回json資料 客戶端獲取響應的結果 然後提醒是否登入成功 MainActivity程式碼: public

VTP配置伺服器server和客戶client,客戶會學習伺服器的VLAN

這種標題,看到就方了,什麼是VTP,trunk、channel這些配置過相關的命令,但是我不理解啊,這樣還能搭小型區域網絡? 本來是要求用dns3、或者eve做的實驗的,因為這兩款模擬器可以模擬真機,然後抓包,天天抓包,天天抓包,果然是學網路了 但是.....!!! 由於我

PCweb手機web跳轉的方式

一、js判斷終端型別 直接上程式碼 <script type="text/javascript"> var browser={      versions:function(){    

實現Android客戶與Eclipse伺服器基於Okthhp簡單通訊

最近在重溫知識,所以藉此機會也想把自己寫的一些心得寫出來供大家分享,寫的有誤或者不好的地方望大家見諒,好了,廢話少說,直接進入正題,下面給大家介紹的就是基於目前主流網路通訊框架的okhttp實現的Android與Eclipse通訊。首先說明:我用的Android客戶端是And

Redis如何通過本機客戶訪問遠端伺服器

 預設無許可權控制: 遠端服務連線: $ redis-cli -h 127.0.0.1 -p 6379 windows下 :redis-cli.exe -h 127.0.0.1 -p 6379   redis 127.0.0.1:6379> 遠端服務停止

springboot2.0 整合WebSocket(服務實時客戶傳送資訊)

     WebSocket為瀏覽器和服務端提供了雙工非同步通訊功能。即瀏覽器可以向服務端傳送訊息,服務端也可以向瀏覽器傳送訊息。    應用於web專案中,多數情況前端需要實時的資料獲取。即服務端向客戶端實時的傳送訊息。操作步驟如下:專案目錄如下:1、運用IDE新建一個sp