4. Authentication and Authorisation on the Web# 4.1. Introduction 4.1.1. Authentication 4.1.2. Multi-Factor Authentication 4.1.3. Authorisation 4.2. Password Authentication 4.2.1. Storing User Records 4.3. Passwords 4.3.1. Hashing Passwords 4.4. Salting Passwords 4.4.1. Recommended Video 4.5. Cookies 4.5.1. Recommended Video 4.5.2. Introduction 4.5.3. Cookie Syntax 4.5.4. Cookie Attributes 4.5.5. Setting Multiple Cookies 4.5.6. Session vs Persistent Cookies 4.6. Cookies in Flask 4.6.1. Setting a Cookie 4.6.2. Setting Cookie Attributes 4.6.3. Reading a Cookie 4.6.4. Deleting a Cookie in Flask 4.7. Server-Side Sessions 4.7.1. Establishing a Server-Side Session 4.7.2. Maintaining a Server-Side Session 4.8. Client-Side Sessions 4.8.1. Establishing a Client-Side Session 4.8.2. Maintaining a Client-Side Session 4.9. Sessions in Flask 4.9.1. Setting Session Data 4.9.2. Getting Session Data 4.9.3. Removing Session Data 4.9.4. Expiration 4.9.5. Security Considerations 4.9.6. Recommended Video 4.10. User and role access controls 4.10.1. User-Based Access Control (UBAC) 4.10.2. Role-Based Access Control (RBAC) 4.10.3. Implementing Access Control 4.11. Flask-Security Tutorial 4.11.1. Key Features of Flask-Security 4.11.2. Documentation