~Get Your Files Here !/1. Introduction how to use the course and software installation/1. Introduction and welcome how to get the most out of the course.mp410.88MB
~Get Your Files Here !/1. Introduction how to use the course and software installation/2. Install a package with a web server, PHP, a database server and phpMyAdmin.mp412.61MB
~Get Your Files Here !/1. Introduction how to use the course and software installation/3. Install Composer manage third-party packages and autoload class files.mp44.15MB
~Get Your Files Here !/10. Authentication using JSON Web Tokens (JWTs)/1. An introduction to JSON web tokens (JWTs).mp411.93MB
~Get Your Files Here !/10. Authentication using JSON Web Tokens (JWTs)/2. Create a class to encode a payload in a JWT.mp410.08MB
~Get Your Files Here !/10. Authentication using JSON Web Tokens (JWTs)/3. Generate a JWT access token in the login endpoint containing JWT claims.mp415.26MB
~Get Your Files Here !/10. Authentication using JSON Web Tokens (JWTs)/4. Add a method to decode the payload from the JWT.mp428.34MB
~Get Your Files Here !/10. Authentication using JSON Web Tokens (JWTs)/5. Pass in the secret key used for hashing as a dependency.mp411.24MB
~Get Your Files Here !/10. Authentication using JSON Web Tokens (JWTs)/6. Authenticate the task endpoints using the JWT.mp419.06MB
~Get Your Files Here !/10. Authentication using JSON Web Tokens (JWTs)/7. Use a custom exception class to return 401 if the signature is invalid.mp412.56MB
~Get Your Files Here !/10. Authentication using JSON Web Tokens (JWTs)/8. Don't store sensitive data in the JWT.mp414.79MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/1. Why access tokens need to expire and how to refresh them in a user-friendly way.mp412.11MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/10. Replace the refresh token in the whitelist when issued in the refresh endpoint.mp413.82MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/11. Validate the refresh token is on the whitelist and return a 400 response if not.mp419.75MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/12. Add a logout endpoint to remove the an active refresh token from the whitelist.mp425.13MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/13. Add a script to clear out expired refresh tokens from the whitelist.mp418.48MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/14. See how a single-page application interacts with the API using access tokens.mp423.26MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/2. Add an expiry claim to the access token payload when logging in.mp412.99MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/3. Throw a custom exception to not accept the JWT if it has expired.mp412.91MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/4. Issue a refresh token in addition to the access token when logging in.mp49.17MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/5. Add a refresh endpoint and validate the refresh token in the request.mp417.86MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/6. Validate the user in the refresh token using the database.mp416.11MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/7. Issue a new access token and refresh token to the authenticated user.mp413.4MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/8. Create a table to store a refresh token whitelist.mp47.54MB
~Get Your Files Here !/11. Expiring and refreshing access tokens/9. Store the refresh token in the whitelist when issued in the login endpoint.mp416.9MB
~Get Your Files Here !/12. Conclusion/1. Conclusion & where to go from here.mp49.54MB
~Get Your Files Here !/2. API basics what APIs are and how to use them/1. What is an API.mp416.85MB
~Get Your Files Here !/2. API basics what APIs are and how to use them/2. Make an API call access an API from PHP.mp46.15MB
~Get Your Files Here !/2. API basics what APIs are and how to use them/3. Decode API results reading JSON in PHP.mp419.73MB
~Get Your Files Here !/2. API basics what APIs are and how to use them/4. Use API data in a web application.mp413.76MB
~Get Your Files Here !/3. HTTP basics requests, responses and using cURL/1. Use cURL instead of file_get_contents to make an API request.mp424.07MB
~Get Your Files Here !/3. HTTP basics requests, responses and using cURL/2. Response codes get the HTTP status code.mp427.83MB
~Get Your Files Here !/3. HTTP basics requests, responses and using cURL/3. Request headers add meta data about the request.mp422.12MB
~Get Your Files Here !/3. HTTP basics requests, responses and using cURL/4. Response headers read meta data about the response.mp421.48MB
~Get Your Files Here !/3. HTTP basics requests, responses and using cURL/5. Get all individual response headers in an array.mp422.58MB
~Get Your Files Here !/3. HTTP basics requests, responses and using cURL/6. Use an API that requires a specific request header.mp419.92MB
~Get Your Files Here !/3. HTTP basics requests, responses and using cURL/7. Request method change the method to get a different result with the same URL.mp423.42MB
~Get Your Files Here !/3. HTTP basics requests, responses and using cURL/8. Request body add a payload to send data along with the request.mp420.92MB
~Get Your Files Here !/4. REST and RESTful APIs using them from PHP/1. REST and RESTful APIs what are they.mp416.37MB
~Get Your Files Here !/4. REST and RESTful APIs using them from PHP/2. Access a RESTful API in PHP with cURL.mp422.54MB
~Get Your Files Here !/4. REST and RESTful APIs using them from PHP/3. Use the Guzzle HTTP client for object-oriented API code.mp425.46MB
~Get Your Files Here !/4. REST and RESTful APIs using them from PHP/4. Use an SDK compare the Stripe API to its SDK.mp429.27MB
~Get Your Files Here !/5. Create a RESTful API build a framework for serving the API/1. Start writing the API enable URL rewriting.mp47.97MB
~Get Your Files Here !/5. Create a RESTful API build a framework for serving the API/2. The front controller get the resource, ID and the request method.mp410.27MB
~Get Your Files Here !/5. Create a RESTful API build a framework for serving the API/3. Use a client for API development cURL, Postman or HTTPie.mp46.79MB
~Get Your Files Here !/5. Create a RESTful API build a framework for serving the API/4. Set the HTTP status code best practices.mp416.64MB
~Get Your Files Here !/5. Create a RESTful API build a framework for serving the API/5. Add a controller class to decide the response.mp416.06MB
~Get Your Files Here !/5. Create a RESTful API build a framework for serving the API/6. Use Composer's autoloader to load classes automatically.mp411.62MB
~Get Your Files Here !/5. Create a RESTful API build a framework for serving the API/7. Make debugging easier add type declarations and enable strict type checking.mp417.44MB
~Get Your Files Here !/5. Create a RESTful API build a framework for serving the API/8. Always return JSON add a generic exception handler and JSON Content-Type header.mp425.01MB
~Get Your Files Here !/5. Create a RESTful API build a framework for serving the API/9. Send a 405 status code and Allow header for invalid request methods.mp419.29MB
~Get Your Files Here !/6. Create a RESTful API create a database and retrieve data from it/1. Create a new database and a database user to access it.mp46.95MB
~Get Your Files Here !/6. Create a RESTful API create a database and retrieve data from it/10. Respond with 404 if the resource with the specified ID is not found.mp415.71MB
~Get Your Files Here !/6. Create a RESTful API create a database and retrieve data from it/2. Create a table to store resource data.mp44.63MB
~Get Your Files Here !/6. Create a RESTful API create a database and retrieve data from it/3. Connect to the database from PHP add a Database class.mp418.4MB
~Get Your Files Here !/6. Create a RESTful API create a database and retrieve data from it/4. Move the database connection data to a separate .env file.mp418.25MB
~Get Your Files Here !/6. Create a RESTful API create a database and retrieve data from it/5. Create a table data gateway class for the resource table.mp413.73MB
~Get Your Files Here !/6. Create a RESTful API create a database and retrieve data from it/6. Show a list of all records.mp413.37MB
~Get Your Files Here !/6. Create a RESTful API create a database and retrieve data from it/7. Configure PDO to prevent numeric values from being converted to strings.mp415.48MB
~Get Your Files Here !/6. Create a RESTful API create a database and retrieve data from it/8. Convert database booleans to boolean literals in the JSON.mp410.31MB
~Get Your Files Here !/6. Create a RESTful API create a database and retrieve data from it/9. Show an individual record.mp412.87MB
~Get Your Files Here !/7. Create a RESTful API create, update and delete individual resources/1. Get the data from the request as JSON.mp421.61MB
~Get Your Files Here !/7. Create a RESTful API create, update and delete individual resources/2. Insert a record into the database and respond with a 201 status code.mp410.48MB
~Get Your Files Here !/7. Create a RESTful API create, update and delete individual resources/3. Add a generic error handler to output warnings as JSON.mp419.02MB
~Get Your Files Here !/7. Create a RESTful API create, update and delete individual resources/4. Validate the data and respond with a 422 status code if invalid.mp421.13MB
~Get Your Files Here !/7. Create a RESTful API create, update and delete individual resources/5. Conditionally validate the data when updating an existing record.mp416.17MB
~Get Your Files Here !/7. Create a RESTful API create, update and delete individual resources/6. Get the data from the request for updating an existing record.mp419.7MB
~Get Your Files Here !/7. Create a RESTful API create, update and delete individual resources/7. Update the record in the database and return a 200 status code.mp422.38MB
~Get Your Files Here !/7. Create a RESTful API create, update and delete individual resources/8. Delete the record in the database and return a 200 status code.mp410.59MB
~Get Your Files Here !/8. API key authentication/1. Create a table to store user account data.mp414.56MB
~Get Your Files Here !/8. API key authentication/10. Restrict the tasks index endpoint to only show the authenticated user's tasks.mp412.01MB
~Get Your Files Here !/8. API key authentication/11. Restrict the rest of the task endpoints to the authenticated user's tasks.mp421.91MB
~Get Your Files Here !/8. API key authentication/12. Cache the database connection to avoid multiple connections in the same request.mp410.72MB
~Get Your Files Here !/8. API key authentication/2. Add a register page to insert a new user record and generate a new API key.mp430.56MB
~Get Your Files Here !/8. API key authentication/3. Send the API key with the request query string or request header.mp414.4MB
~Get Your Files Here !/8. API key authentication/4. Check the API key is present in the request and return 400 if not.mp47.92MB
~Get Your Files Here !/8. API key authentication/5. Create a table data gateway class for the user table.mp411.63MB
~Get Your Files Here !/8. API key authentication/6. Authenticate the API key and return a 401 status code if invalid.mp410.86MB
~Get Your Files Here !/8. API key authentication/7. Refactor the front controller to a bootstrap file and Auth class.mp423.66MB
~Get Your Files Here !/8. API key authentication/8. Add a foreign key relationship to link task records to user records.mp46.02MB
~Get Your Files Here !/8. API key authentication/9. Retrieve the ID of the authenticated user when authenticating.mp410.2MB
~Get Your Files Here !/9. An introduction to authentication using access tokens/1. An introduction to authentication using access tokens.mp48.43MB
~Get Your Files Here !/9. An introduction to authentication using access tokens/2. Create the login script and return 400 if the username and password are missing.mp411.66MB
~Get Your Files Here !/9. An introduction to authentication using access tokens/3. Select the user record based on the username in the request.mp412.41MB
~Get Your Files Here !/9. An introduction to authentication using access tokens/4. Check the username and password and return a 401 status code if invalid.mp49.44MB
~Get Your Files Here !/9. An introduction to authentication using access tokens/5. Generate an encoded access token containing the user details.mp414.27MB
~Get Your Files Here !/9. An introduction to authentication using access tokens/6. Pass the access token to the task API endpoints in the authorization header.mp423.85MB
~Get Your Files Here !/9. An introduction to authentication using access tokens/7. Validate the access token and decode its contents.mp424.15MB
~Get Your Files Here !/9. An introduction to authentication using access tokens/8. Get the authenticated user data from the access token.mp417.74MB