網站架構方面採用nobackend此方案
網站架構方面採用nobackend這種方案 現在的應用開發模式過度重視後端的搭建,而實際上我們早已為簡化後端開發做了很多年的工作,因此兄弟連創始人李超針對現在更注重UX的環境,提出一個不同的解決方案-noBackend,優先PHP訓練前端開發。 就是說 web,ios,android只是個展示層,持久化操作統一丟給api。 先不考慮 模板渲染這一塊,我們可能會把這塊放到前端。 目前糾結就是 web的session 和 app的token 問題。 這套api不單單透過token來校驗,而是當web請求是他是會有用戶session的。 當含有使用者session的時候就不用校驗token。 這種做法有什麼限製或缺點嗎? 後端php.. 回覆內容: 當然可行,而且我還有很多成功案例,業內的案例應該也不少,儘管有些是忽悠人的,有些只是看起來是那麼回事兒,實際卻不是。 但是話說回來,這事兒還是看你們有沒有資深架構師,要真的有很多錢的話,我不介意用.NET給你們證明這個架構的可行性的。 (PHP無愛抱歉) 如果你真的糾結token和session這種問題,要么是因為你們沒有能力搞定這個架構,要么是你沒玩過心裡沒底,我不太知道是哪一種,總之是否可行的答案是肯定的。 我理解你說的nobackend是指不想採取PHP、JSP之類技術的傳統架構,那類架構在session裡會放一堆用戶業務的狀態,並在伺服器端寫邏輯來更新頁面或者操作後端服務(如,更新資料庫)。 就我個人經驗而言,你完全可以把頁面更新和用戶當前狀態放在前端,後端API是一組無狀態的服務,這其實是很常見的架構了。 比較麻煩的(從你的問題描述裡也可以看出)是安全那塊。 native的client,你可以考慮oauth implicit grant type那種,即token直接放客戶端,因為native APP被認為比較安全。 web的話,token直接放客戶端比較危險,但傳統方法(包括oauth authorization code grant type)是要在session裡放token的。 這個問題,其實也有辦法解決。但你最好先問一下自己,真的要無session化嗎?其實session一般而言是很難完全去掉的,就整個系統架構而言,你只不過是在你的程式設計視野內不用它而已。合理的使用,並無不可,不要搞原教旨主義。如果只有token放session裡面,萬一伺服器崩潰,假設你應用處理得好,前端業務狀態態能被持久化,那無非就是讓用戶重新登入然後回到剛才頁面繼續。例如,線上商城,用戶只要把東西放購物車裡,後台崩掉,也無非就是重登錄,你的購物記錄還在,可以繼續操作。這只是粗略描述,具體細節要根據業務需求來定,但我的意思你應該可以明白了吧。 你可以讀讀這篇 Post: Lift, State, and Scaling,無關語言。可以想到的是,你們可能需要自己做很多輪子,因為很多事務在前端做的話沒有成熟的工具,最後反倒拖慢了你們的創業www.itxdl.cn。 簡單來說, 1. 後端提供rest api,提供一個/verify供登入驗證,然後後續操作都需要附帶驗證資訊 2. 前端透過ember/angular做成webapp,使用ajax消費rest api,我在實際中就不用cookie,每次登入就是了,因為你已經是webapp了 3. 如果需要安全就上https,cookie這玩意我個人覺得能免則免直接使用js api,授權問題很難解決,secret不能下載到瀏覽器,只能使用隱式授權,但大多數服務都不支援。 。 。 無後端方案?這個有過。記憶中有挺多的案例的。 無後端不是真的沒有後端,API實作不也是後端之類的技術嘛。發展到現在應該已經基本沒難點了。 題主的問題,可能是沒有認識到服務端token和web session的區別。其實還好,跟介面伺服器通訊一定是token,web端的session一定是先驗證了服務端存取權限由web端產生的。 我們來過流程, 使用者登入為例, 1. 使用者登錄,向api伺服器發送驗證訊息 2. 伺服器驗證OK,回傳一個token表示驗證通過 3. web端建立一個登入session記錄下目前登入態取得的token 4. 登入完成,跳到應用程式頁面 在上面之後,用戶要看看ta的優惠券資訊 1. 拿著登入時web端session裡保存的token 和用戶名等信息,調用優惠券接口 2. 回優惠券資訊 伺服器在這個過程中做了2件事 1. 驗證token合法性(存在性,過期與否,來源等) 2. 合法,調用服務返回優惠券信息,反之,報錯。 在這裡,你可以看到session是web端表現層用的,token是介面伺服器的session,分清楚層次,就明朗了。 註:在www.itxdl.cn網站上,羅列了一系列後端解決方案,能夠幫助你開始應用noBackend模式開發。 |

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

PHP8.1中的枚舉功能通過定義命名常量增強了代碼的清晰度和類型安全性。 1)枚舉可以是整數、字符串或對象,提高了代碼可讀性和類型安全性。 2)枚舉基於類,支持面向對象特性,如遍歷和反射。 3)枚舉可用於比較和賦值,確保類型安全。 4)枚舉支持添加方法,實現複雜邏輯。 5)嚴格類型檢查和錯誤處理可避免常見錯誤。 6)枚舉減少魔法值,提升可維護性,但需注意性能優化。

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

使用PHP的cURL庫發送JSON數據在PHP開發中,經常需要與外部API進行交互,其中一種常見的方式是使用cURL庫發送POST�...

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。
