# การยืนยันตัวตนและการอนุญาต (Ruby on Rails) > Devise (เซสชันเว็บ), has_secure_password, cookies, JWT (การยืนยันตัวตนของ API), Pundit, CanCanCan - 22 คำถามสัมภาษณ์ - Mid-Level - [คำถามสัมภาษณ์: Ruby on Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions.md) ## 1. Devise คืออะไรในระบบนิเวศ Rails? **คำตอบ** Devise เป็น gem สำหรับการยืนยันตัวตนที่ยืดหยุ่นและครบถ้วนสำหรับ Rails สร้างขึ้นบน Warden มันมีโมดูลที่กำหนดค่าไว้ล่วงหน้าเพื่อจัดการการลงทะเบียน การเข้าสู่ระบบ การกู้คืนรหัสผ่าน การยืนยันอีเมล การล็อกบัญชี และอื่น ๆ Devise เป็นโซลูชันการยืนยันตัวตนที่ได้รับความนิยมมากที่สุดในระบบนิเวศ Rails ด้วยความง่ายในการผสานรวมและความเป็นโมดูล ## 2. โมดูล Devise ใดที่ใช้กันมากที่สุดในแอปพลิเคชัน Rails มาตรฐาน? **คำตอบ** Devise นำเสนอสถาปัตยกรรมแบบโมดูลที่แต่ละฟีเจอร์เป็นโมดูลที่แยกได้ โมดูลที่ใช้กันมากที่สุดได้แก่ database_authenticatable (การยืนยันตัวตนด้วยรหัสผ่าน), registerable (การลงทะเบียน), recoverable (การกู้คืนรหัสผ่าน), rememberable (คุกกี้ 'จดจำฉัน'), validatable (การตรวจสอบอีเมลและรหัสผ่าน), confirmable (การยืนยันอีเมล) และ lockable (การล็อกหลังจากล้มเหลว) ## 3. จะป้องกัน action ของ controller ให้เข้าถึงได้เฉพาะผู้ใช้ที่เข้าสู่ระบบด้วย Devise ได้อย่างไร? **คำตอบ** Devise มี helper ชื่อ authenticate_user! ที่ใช้เป็น before_action ใน controller ได้ ฟิลเตอร์นี้จะตรวจสอบว่าผู้ใช้เข้าสู่ระบบหรือไม่ และเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบหากยังไม่ได้เข้าสู่ระบบ สามารถใช้กับทุก action หรือจำกัดด้วย only หรือ except ชื่อ helper ขึ้นอยู่กับโมเดล (authenticate_admin! สำหรับโมเดล Admin) ## มีอีก 19 คำถาม - helper ของ Devise ตัวใดที่ช่วยให้เข้าถึงผู้ใช้ที่เข้าสู่ระบบอยู่ใน view หรือ controller? - จะปรับแต่ง view ของ Devise (ฟอร์มเข้าสู่ระบบ การลงทะเบียน ฯลฯ) ในแอปพลิเคชัน Rails ได้อย่างไร? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Ruby on Rails อื่นๆ - [พื้นฐาน Ruby](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/ruby-basics.md): 25 คำถาม, Junior - [การเขียนโปรแกรมเชิงวัตถุใน Ruby](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/ruby-oop.md): 20 คำถาม, Junior - [พื้นฐาน Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-fundamentals.md): 18 คำถาม, Junior - [Routing & Controllers](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/routing-controllers.md): 22 คำถาม, Junior - [พื้นฐาน ActiveRecord](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-record-basics.md): 25 คำถาม, Junior - [Views และ ERB Templates](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/views-erb-templates.md): 20 คำถาม, Junior - [การเชื่อมโยงของ ActiveRecord](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-record-associations.md): 24 คำถาม, Mid-Level - [การสอบถาม ActiveRecord ขั้นสูง](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-record-queries.md): 28 คำถาม, Mid-Level - [ฟอร์ม Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-forms.md): 20 คำถาม, Mid-Level - [Asset Pipeline สมัยใหม่และ frontend](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-asset-pipeline.md): 18 คำถาม, Mid-Level - [โหมด API ของ Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-api-mode.md): 20 คำถาม, Mid-Level - [การทดสอบด้วย RSpec](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-testing-rspec.md): 24 คำถาม, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-job-background-jobs.md): 20 คำถาม, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/action-cable-websockets.md): 18 คำถาม, Mid-Level - [ActionMailer](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/action-mailer.md): 18 คำถาม, Mid-Level - [ActiveStorage](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/active-storage.md): 20 คำถาม, Mid-Level - [กลยุทธ์การ Caching](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/caching-strategies.md): 20 คำถาม, Mid-Level - [การ Migration ขั้นสูง](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/database-migrations-advanced.md): 20 คำถาม, Mid-Level - [Rails Engines และแอปแบบโมดูลาร์](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-engines-modular-apps.md): 18 คำถาม, Senior - [การเพิ่มประสิทธิภาพการทำงาน](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/performance-optimization.md): 26 คำถาม, Senior - [Design Patterns ใน Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-design-patterns.md): 22 คำถาม, Senior - [เมตาโปรแกรมมิงใน Ruby](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/ruby-metaprogramming.md): 20 คำถาม, Senior - [ความปลอดภัยของ Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-security.md): 22 คำถาม, Senior - [GraphQL กับ Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/graphql-rails.md): 20 คำถาม, Senior - [การดีพลอยและโปรดักชัน](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-deployment-production.md): 20 คำถาม, Senior - [Monitoring & Logging](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/monitoring-logging.md): 20 คำถาม, Senior - [กลยุทธ์การอัปเกรด Rails](https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/rails-upgrade-strategies.md): 18 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/ruby-on-rails/interview-questions/authentication-authorization