JWT

Articles

跨網站登入的實際應用

跨網站登入就是跨多個不同的Web Server,因為Web Server有自己的Session線程,如果Session無法做到共用的話,就必須要用其他方式處理,如下圖簡單的示意圖: 第一步:是A Web Server給了Client Browser一個連結,而這個連結是連線到A Web Server的pagaA。 第二步:A Web Server回應一個Form表單,但是立即submit出去,而form表單中的src指向B Web Server。 第三步:B Web Server接收了來自Client Browser就會產生B Web Server Session,這個時候,因為收了Client的post資料,資料內可以是Token或者是帳號與密碼(這個部分最好用JWT加解密)。而拿到的Token也可以用Server to Server的方式去詢問資料的有效性。 以上是一個簡單的跨站資料傳輸保有Session的流程,但是不建議在外部網路使用喔,因為有一個弱點,就是在Client Browse可以停用java script,這樣給client的表單就不會被送出,那麼就可以利用來作手腳了。 Form表單的內容可以參考如下: <form action='B Web Server page' id='frmToken' method='post'> <input type='hidden' name='token' value='Token Vakye' /> </form> <script> document.getElementById('frmToken').submit(); </script>
技術
0
min.

JWT學習筆記Part2(驗證Token)-完結篇

前篇請參考這裡,因為使用Jose JWT,處理起來相對簡單很多,以下是驗證資料是否被竄改過,只要有被改過,無論是簽章,或是header、payload,改過都會驗證失效的。 public Dictionary<string, string> VerifyToken(string token) { RSAParameters rsaParams; var verifyPass = false; var exp =...
技術
0
minutes

JWT學習筆記Part1(產製Token)

跨伺服器交換資料,用JWT就對了,安全可靠。 認識JWT,請參考以下文章: 以 JSON Web Token 替代傳統 Token 有了基本的認識後,HS開頭的簽章方式是用secret(密語),把secret給其他伺服器就能驗證簽章,本案例使用asp.net,請參考以下Code(要用NuGet下載System.JdentityModel.Tokens.Jwt)。 // header var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("db3OIsj+BXE9NZDy0t8W3TcNekrF+2d/1sFnWG4HnV8TZY30iTOdtVWJG8abWvB1GlOgJuQZdcF2Luqm/hccMw==")); var signingCredentials...
技術
1
minute