前文已給出token的工具類,校驗類和配置相關的攔截器,可參考 https://www.cnblogs.com/bbq668/p/11972577.html
那接下來說說token怎么用:
1、由於是前后端分離的項目,那驗證是否登錄,在寫登陸接口過程中:后端獲取前端輸入的用戶名和密碼,通過用戶名+密碼生成token值通過map傳遞給前端
//用戶登錄
@RequestMapping("/doLogin")
@ResponseBody
public Map<String,Object> doLogin( @RequestParam String userName, @RequestParam String password) {
Map<String,Object>map=new HashMap<String,Object>();
User user = userService.findUserByUserName(userName);
if (user == null) {
map.put("code",1);
map.put("msg","用戶名或密碼錯誤,請重新輸入");
return map;
} else if (!user.getPassword().equals(password)) {
map.put("code",1);
map.put("msg","密碼輸入錯誤");
return map;
} else {
//登錄成功
String token = TokenUtil.sign(userName,password);
//登錄成功
map.put("code",0);
map.put("token",token);
map.put("userId",user.getUserId());
map.put("msg","登錄成功");
return map;
}
}
2、前端獲取通過map語句,保存token值,前后端不分離一般用session來存儲,既然分離,前端則用local Storage來實現
保存: window.localStorage.setItem('Token', Token);
前端調用token則用 window.localStorage.getItem('Token');
當然后端也就能調用:String token = request.getHeader("Token");
那這里就能可以舉一反三,通常頁面登陸成功跳轉后, 會顯示用戶呢稱,我們也可以用這種方法在前端頁面顯示出來,非常實用。
總結:
后端通過獲取前端傳遞過來的用戶名和密碼,然后通過工具類生成token值, 如果登陸成功就把token值傳遞給前端, 前端把值存儲起來,在前端判斷是否登陸即可。