Token解決頁面重新整理重定向

2021-08-30 14:05:15 字數 1372 閱讀 6020

由於本人通過url帶引數轉頁面過程中發現:重新整理的時候頁面會重新實現這個過程,因此頁面效果展示及實現受到了影響。經過網上查閱相關知識,發現可以用token來解決這個問題。

上網查了一下,token是被稱為「令牌」的一種身份驗證方式,可以解決表單提交、頁面重新整理等問題,最簡單的token組成:uid(使用者唯一的身份標識)、time(當前時間的時間戳)、sign(簽名,由token的前幾位+鹽以雜湊演算法壓縮成一定長的十六進製制字串,可以防止惡意第三方拼接token請求伺服器)。

解決思路:

要想從a頁面跳到b頁面,保證b頁面重新整理時不會被重複提交且頁面返回到a重複跳到b頁面不會重複提交

在進入a頁面前,先在session裡面存入乙個token,並在request請求中存入token

在a頁面中,將request中的token放在表單隱藏域中或者url中

攔截a到b的url請求時,先拿到session中的stoken和url中的token,如果stoken存在並且跟token一致則表明是第一次跳轉至b頁面,此時把跳轉到b頁面和b頁面需要的引數存進session

如何stoken不存在則表明頁面出錯或者被關閉,如果stoken跟token不一致則表明頁面是重複重新整理,f5或者返回上一級再進來都有可能,這時可以從session中拿到之前存進來的資料,再次跳轉到b頁面即可

跳轉到a之前存session:

string token = uuid.randomuuid().tostring();

req.getsession().setattribute("token", token);

req.setattribute("token", token);

```a頁面防止request中的token

location.href="$/browser/seeorder?aid="+aid+"&commodityids="+commodityids

+"&numss="+nums+"&userid=<%=userid%>"+"&token=<%=request.getattribute("token")%>";

第一次跳轉到b頁面的邏輯

string stoken =(string) req.getsession().getattribute("token");

if(token!=null && token.equals(stoken))

重複跳轉時

else
當第一次跳轉進b頁面時,生成乙個隨機數並在頁面展示,如果不將這個隨機數存進session,f5重新整理或者返回上一級再進跳轉都會改變這個隨機數。因此,想要拿到原來的資料可以選擇存進session再拿取。

ps:新人寫部落格,有問題請多多指出。

頁面重定向erro miss

訪問頁面是時,出現如下錯誤 遇到這個問題,我先清除 cookies和快取,無效。然後 檢視 public void dofilter servletrequest servletrequest,servletresponse servletresponse,filterchain filtercha...

vue router重定向不重新整理問題的解決

前陣子太忙了,自己乙個人一邊開發著新專案,一邊維護著舊專案,沒時間寫部落格,終於讓我騰出時間了。廢話少說,開始正文。問題描述 之前專案是angular開發的,後來用vue重構後。專案路徑和vue路徑不一致,但是app端分享出的鏈結,依舊是舊專案鏈結。解決方法 通過閱讀vue router的官方文件,...

MVC頁面重定向 頁面跳轉

mvc頁面重定向,主要有以下幾種形式 1.response.redirect 方法 using system using system.collections.generic using system.linq using system.web using system.web.mvc namesp...