1. เขียน sessionfilter.scala รหัส
Package FiltersImport Javax.Inject. {Inject, Singleton} นำเข้า Akka.stream.MaterializerImport Controllers.routesimport play.api.mvc. {ตัวกรอง, requestheader, ผลลัพธ์, ผลลัพธ์ ใช้ (NextFilter: requestheader => อนาคต [ผลลัพธ์]) (requestheader: requestheader): อนาคต [ผลลัพธ์] = {ถ้า (! requestheader.session.get ("ผู้ใช้"). isdefine &&! requestheader.path.contains ("/signin") &&! future.successful (results.redirect (route.signcontroller.showsignin ()))} else {nextfilter (requestheader)}}}ภาพประกอบ:
! requestheader.session.get ("ผู้ใช้"). isdefined ใช้เพื่อพิจารณาว่าผู้ใช้มีอยู่ในเซสชัน
! requestheader.path.contains ("/signin") ใช้เพื่อแยกหน้าเข้าสู่ระบบ หน้านี้ควรมองเห็นได้หากไม่ได้เข้าสู่ระบบเพื่อป้องกันการกระโดดวนซ้ำที่ตายแล้ว
! requestheader.path.contains ("/สินทรัพย์/") ใช้เพื่อแยกไฟล์ทรัพยากรคงที่เช่นรูปภาพ, CSS, JavaScript ฯลฯ
2. ใช้ SessionFilter ใน filters.scala ในไดเรกทอรีแอพ
ไฟล์ filters.scala เป็นเทมเพลตที่สร้างขึ้นโดยอัตโนมัติโดย Activater หากต้องการใช้ SessionFilter เพียงเพิ่ม SessionFilter: SessionFilter และ SEQ (SessionFilter) ลงไป
นำเข้า javax.inject._import ตัวกรอง {examplefilter, sessionfilter} นำเข้า play.api._import play.api.http.httpfiltersimport play.api.mvc ._/*** คลาสนี้กำหนดค่าตัวกรองที่ทำงานทุกคำขอ คลาส * นี้ถูกสอบถามโดยการเล่นเพื่อรับรายการตัวกรอง * * การเล่นจะใช้ตัวกรองจากคลาสใด ๆ ที่เรียกว่า * `ฟิลเตอร์ 'ที่วางแพ็คเกจรูท คุณสามารถโหลดตัวกรอง * จากคลาสอื่นโดยเพิ่มการตั้งค่า `play.http.filters` เป็น * ไฟล์การกำหนดค่า` application.conf` * * @Param Env การตั้งค่าสภาพแวดล้อมพื้นฐานสำหรับแอปพลิเคชันปัจจุบัน * @param ตัวอย่างฟิลเตอร์ตัวกรองการสาธิตที่เพิ่มส่วนหัวให้กับ * การตอบสนองแต่ละครั้ง */ @ตัวกรอง SingletonClass @Inject () (Env: Environment, ExampleFilter: ExampleFilter, SessionFilter: SessionFilter) ขยาย httpfilters {แทนที่ Val Filters = {// ใช้ตัวกรองตัวอย่างหากเรากำลังใช้โหมดการพัฒนา ถ้า // เรากำลังทำงานในโหมดการผลิตหรือการทดสอบอย่าใช้ตัวกรอง // ใด ๆ เลย if (env.mode == mode.dev) seq (examplefilter) else seq.empty seq (sessionfilter)}}}ด้านบนเป็นตัวแก้ไขที่แนะนำให้เล่นสำหรับ Scala เพื่อใช้การกรอง SessionFilter ผู้ใช้ที่ไม่ได้ลงชื่อเข้าใช้หน้าเข้าสู่หน้าเข้าสู่ระบบ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!