跨時區web系統解決方案

2021-09-21 17:59:27 字數 748 閱讀 4907

但是如果系統使用者和我們不在同乙個時區,比如伺服器的時間是北京時間,而系統使用者的時間是美國時間,這中間差了12小時。

那麼如何讓伺服器取記錄系統使用者的本地時間呢?

有人會說直接去使用者裝置上的本地時間就好,但是這樣會有問題,如果裝置時間不準確,那麼記錄的時間也不準確所以不行。

解決方案有多種,比如給使用者加上時區標識,我們討論一種更簡單暴力的解決辦法。

前端獲得時區資訊:

var time_area = new date().gettimezoneoffset() / 60;

console.log(time_area )

如果是北京時間則 time_area 為 -8

如果是美國時間則time_area 為 8

伺服器計算當時時間(python),time_area 是前端傳來的

from datetime import datetime,timedelta,timezone

utc_time = datetime.utcnow().replace(tzinfo=timezone.utc)

offset = (0-time_area)

local_time = utc_time.astimezone(timezone(timedelta(hours=offset)))

print(datetime.strftime(local_time, "%y-%m-%d %h:%m:%s"))

跨域解決方案

因為瀏覽器出於安全考慮,有同源策略。也就是說,如果協議 網域名稱或者埠有乙個不同就是跨域,ajax 請求會失敗。那麼是出於什麼安全考慮才會引入這種機制呢?其實主要是用來防止 csrf 攻擊的。簡單點說,csrf 攻擊是利用使用者的登入態發起惡意請求。也就是說,沒有同源策略的情況下,a 可以被任意其他...

跨域解決方案

瀏覽器端的同源策略 如果兩個頁面的協議,埠和網域名稱中的其中任意乙個不相同,它們就是不同源的,瀏覽器會限制他們之間的資源互動 跨域 跨域的安全限制只針對瀏覽器,伺服器是沒有跨域的安全限制的 原理 由於伺服器沒有跨域限制,所以在需要跨域訪問時,在中間設定乙個中間層 舉例 192.168.10.1 80...

跨域解決方案

後端解決跨域的主要方式是,通過在響應頭中設定相關的跨域字段,用於告訴瀏覽器允許跨域請求資源。在前後端分離的場景中,登入頁面存在後端伺服器中,當登入成功後,需要發起跳轉請求,跳轉至前端首頁的情況。nginx響應頭相關配置 可指定匹配路徑,並不一定需要在location 下配置 在前後端分離的場景中,由...