Logo
    Search

    Podcast Summary

    • Understanding OAuth for secure access to websites and APIsOAuth is a standard protocol for secure authorization, enabling users to grant access to their data or perform actions on their behalf without sharing login credentials. It simplifies user authentication and API access while maintaining security.

      OAuth is a standard protocol for allowing secure authorization between different applications and services. It enables users to grant access to their data or perform actions on their behalf without sharing their login credentials. Wes, Barracuda, Boss, and Scott explained that OAuth is essential for logging into websites using external services like GitHub or Google, as well as accessing content on behalf of another account. Scott shared an analogy of using OAuth like having a bouncer grant access to a club while keeping your personal information private. OAuth is commonly used for single sign-on (SSO) and third-party app integration. For instance, Scott uses OAuth to automate his tax-filing process by allowing an application to access his GitHub repositories and categorize expenses based on HST (Harmonized Sales Tax) without needing to manually check each transaction. Overall, OAuth is a crucial concept in web development that simplifies user authentication and API access while maintaining security.

    • Automating HST expense categorization with APIs and OAuthUse APIs and OAuth for secure access to automate HST expense categorization, simplifying the process and ensuring security with client ID and client secret.

      Automating the process of identifying and categorizing expenses with HST involves using APIs like FreshBooks and implementing OAuth for secure access. This process may initially seem complicated with various tokens and types, but it ultimately simplifies the experience compared to rolling your own authentication. Client ID and client secret are essential components of this process. They serve as the application's username and password, allowing access to specific user data. When creating an application on a service like GitHub, these credentials are generated and provided upon application creation. By using OAuth and these credentials, applications can securely access and manage user data without the need for manual encoding or hash comparison. OAuth, while complex at first, offers significant benefits by simplifying the authentication process and saving developers time and effort. It also provides a more secure alternative to handling sensitive user data compared to writing custom authentication solutions. To summarize, the key takeaway is that automating HST expense categorization involves using APIs and OAuth for secure access. Understanding the role of client ID and client secret in this process is crucial for developers looking to implement these solutions in their applications.

    • GitHub OAuth process for application integrationGitHub's OAuth process allows secure and controlled access to repositories and user information for applications, with user consent required at all times.

      When integrating GitHub with an application, the application requests access to specific repositories or information through a process called OAuth. This process involves obtaining a client ID, defining permissions, and using callback URLs. The user maintains control over what permissions they grant, and GitHub acts as an intermediary, allowing the application to access only the necessary data. This adds an extra layer of security and control for users, as they can specify exactly what information an application can access. The client ID and callback URL are crucial components of this process and should be handled carefully, as they allow the application to interact with the user's GitHub account. The user's consent is required at all times, and they can revoke access at any point. This method ensures that users have control over their data while allowing for secure and efficient integration of third-party applications with GitHub.

    • Accessing GitHub user data using OAuthTo access a user's GitHub data, obtain an authorization code, exchange it for an access token, and use the token to make API requests. Refresh tokens can be used to maintain access without requiring users to re-login.

      To access users' information from GitHub using their API, you need to follow a specific authorization flow. First, you obtain an authorization code by redirecting users to GitHub's OAuth authorization endpoint and handling the callback. Next, you exchange the authorization code, your client ID, and client secret for an access token, which grants you access to the users' information. The access token acts as your API key. It's important to note that the access token is not long-lasting, so you may need to implement refresh tokens to maintain access without requiring users to re-login. The refresh token allows you to generate a new access token without requiring the user to re-authorize. The length of the access token and refresh token depends on the GitHub API's configuration. Overall, this process is similar to handling webhooks and other web services that require authorization for accessing information.

    • Securely managing access tokens and refresh tokensNever send or store access tokens or refresh tokens in the client or browser. Keep them securely in a database, limit access token lifespan, and keep client secrets and tokens separate to protect user data.

      Properly managing access tokens and refresh tokens is crucial for securing user data. Access tokens, which grant access to specific resources, and refresh tokens, which can be used to obtain new access tokens, should never be sent to the client or stored in a browser. Instead, they should be securely saved in a database. This is because if someone gains access to these tokens, they can effectively bypass passwords and access sensitive information. Access tokens have a limited lifespan to mitigate the risk of token leaks, and it's essential to keep client secrets and tokens separate. The Linus Tech Tips hack serves as a reminder of the importance of securely managing access tokens and refresh tokens. By understanding the role of these tokens and implementing proper security measures, you can help protect your users' data.

    • Understanding security implications of different types of tokensUse HTTP only cookies and state tokens for added security when dealing with authentication and access tokens. Implementing these best practices can help prevent attacks and protect user data.

      When dealing with authentication and access tokens, it's crucial to understand the security implications of different types of tokens and their storage locations. HTTP only cookies cannot be accessed through the network and are stored in the client's browser, adding an extra layer of security. However, if someone gains access to your local file system, they can potentially access your sensitive data, including cookies and SQLite databases. Another security measure is the use of state tokens, which are generated before a request and help ensure that the device or application making the request is the same one receiving the token. This additional step can help prevent attacks in OAuth. Google APIs use state tokens to add an extra layer of security. When making a request, an application generates a random token and sends it to Google, which returns an access token and the same state token. If the device receiving the access token is not the same one that generated the state token, the access will be denied. Overall, understanding the different types of tokens and their security implications is essential for developers when building applications that rely on APIs and access tokens. By implementing best practices, such as using HTTP only cookies and state tokens, developers can help ensure the security of their applications and user data.

    • Using OAuth for API accessOAuth involves obtaining an access token and, in some cases, a refresh token, which can be stored and used for authorized API requests. The process is standardized, simplifying authentication.

      Using OAuth for accessing APIs involves obtaining an access token and, in some cases, a refresh token. This token can be stored in various ways, including in a variable or in a dotenv file, and it allows you to make authorized requests to the API. This process is generally the same across different APIs, with the main difference being how the authorization code is sent in the request. Some APIs may require sending the token as a bearer token in a header, while others may use a query param over URL. Regardless, the majority of the OAuth process is standardized, making it easier than writing your own authentication from scratch. The use of OAuth is particularly common in the context of websites, but it can also be used for scripting purposes. Overall, OAuth is a powerful tool for securely accessing APIs and simplifies the authentication process.

    Recent Episodes from Syntax - Tasty Web Development Treats

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    Scott and CJ chat with Paul Copplestone, CEO and co-founder of Supabase, about the journey of building an open source alternative to Firebase. Learn about the tech stack, the story behind their excellent documentation, and how Supabase balances business goals with open-source values.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 Who is Paul Copplestone?
    • 01:17 Why ‘Supa’ and not ‘Super’?
    • 02:26 How did Supabase start?
    • 08:42 Simplicity in design.
    • 10:32 How do you take Supabase one step beyond the competition?
    • 12:35 How do you decide which libraries are officially supported vs community maintained?
      • 15:17 You don’t need a client library!
    • 16:48 Edge functions for server-side functionality.
    • 18:51 The genesis of pgvector.
    • 20:59 The product strategy.
    • 22:25 What’s the story behind Supabase’s awesome docs?
    • 25:26 The tech behind Supabase.
    • 35:46 How do you balance business goals with open source?
    • 42:01 What’s next for Supabase?
    • 44:15 Supabase’s GA + new features.
    • 48:24 Who runs the X account?
    • 50:39 Sick Picks + Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    787: You Should Try Vue.js

    787: You Should Try Vue.js

    Scott and CJ dive deep into the world of Vue.js, exploring what makes this frontend framework unique and why it stands out from React and Svelte. CJ gives a comprehensive tour, covering everything from getting started to advanced features like state management and Vue’s built-in styles.

    Show Notes

    Vue.js: The Documentary.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    786: What Open Source license should you use?

    786: What Open Source license should you use?

    Scott and CJ dive into the world of open source, breaking down its meaning, benefits, and the various types of licenses you’ll encounter. From permissive licenses like MIT and Apache 2.0 to copy-left licenses such as GNU GPLv3, they’ll help you choose and apply the right license for your project.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    785: What’s Next for NextJS with Tim Neutkens

    785: What’s Next for NextJS with Tim Neutkens

    Scott and Wes dive into the world of Next.js with special guest Tim Neutkens from Vercel. They explore the latest updates, including the React Compiler and React Server Components, discussing their impact on developer workflows and the future of Next.js development.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 What does the React Compiler do?
    • 05:04 Will React Compiler help with managing Context?
    • 06:39 What happens if you’re not using a React Compiler?
    • 09:30 Will this work on any NextJS version?
    • 12:18 What are React Server Components?
    • 16:28 Shipping all the data inside an encapsulated component.
    • 20:17 Clearing up the frustrations around retrofitting server components.
    • 23:13 Handing migration.
    • 28:30 Is this just a fetch request with props?
    • 36:41 How closely are the NextJS and React teams working?
    • 41:53 Will we ever get Async Client Components?
    • 43:52 Async Local Storage API.
    • 45:31 Turbopack.
    • 57:51 Sick Picks & Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    784: Logging × Blogging × Testing × Freelancing

    784: Logging × Blogging × Testing × Freelancing

    In this Potluck episode, Scott and Wes tackle listener questions on modern blogging, website environmental impact, and using LangChain with LLMs. They also cover CSS hyphens, unit vs. integration testing, and balancing web development with new parenthood.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    Scott and Wes dive into the world of browser caching for audio files, exploring the File System API and the Cache API. They discuss size restrictions across different browsers, how tools like Riverside.fm leverage IndexedDB, and walk through code examples for creating, retrieving, and managing cached audio data.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    782: The Developer’s Guide To Fonts with Stephen Nixon

    782: The Developer’s Guide To Fonts with Stephen Nixon

    Scott and CJ are joined by Stephen Nixon of ArrowType to delve into the world of fonts and type for developers. They explore the intricacies of font creation, the utility of variable fonts, and offer tips for making visually appealing typography on the web.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    In this potluck episode of Syntax, Scott and CJ serve up a variety of community questions, from the nuances of beginner vs. advanced TypeScript to the pros and cons of SvelteKit. They also discuss falling out of love with React, shipping private packages via NPM, and the eternal struggle of always starting but never finishing projects.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    780: Cloud Storage: Bandwidth, Storage and BIG ZIPS

    780: Cloud Storage: Bandwidth, Storage and BIG ZIPS

    Today, Scott and Wes dive into cloud storage solutions—why you might need them, how they use them, and what you need to know about the big players, fees, and more.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    779: Why SQLite is Taking Over with Brian Holt & Marco Bambini

    779: Why SQLite is Taking Over with Brian Holt & Marco Bambini

    Scott and CJ dive into the world of SQLite Cloud with special guests Brian Holt and Marco Bambini. They explore why SQLite is gaining traction, its unique features, and the misconceptions surrounding its use—let’s get into it!

    Show Notes

    • 00:00 Welcome to Syntax!
    • 01:20 Who is Brian Holt?
    • 02:26 Who is Marco Bambini?
    • 05:12 Why are people starting to talk so much about SQLite now?
    • 08:47 What makes SQLite special or interesting?
    • 09:46 What is a big misconception about SQLite?
    • 11:13 Installed by default in operating systems.
    • 12:03 A perception that SQLite is intended for single users.
    • 13:36 Convincing developers it’s a full-featured solution.
    • 15:11 What does SQLite do better than Postgres or MySQL?
    • 17:30 SQLite Cloud & local first features.
    • 20:38 Where does SQLite store the offline information?
    • 23:08 Are you typically reaching for ORMs?
    • 25:00 What is SQLite Cloud?
    • 27:29 What makes for an approachable software?
    • 29:18 What make SQLite cloud different from other hosted SQLite options?
    • 32:13 Is SQLite still evolving?
    • 34:40 What about branching?
    • 37:37 What is the GA timeline?
    • 40:04 How does SQLite actually work?
    • 41:19 Questions about security.
    • 44:28 But does it scale?
    • 45:52 Sick Picks + Shameless Plugs.

    Sick Picks

    Brian: Trainer Road
    Marco: Tennis

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    Related Episodes

    Jesse Got His Doodle, Plus Kyle Knows Talks Ethereum & Much More

    Jesse Got His Doodle, Plus Kyle Knows Talks Ethereum & Much More

    The boys are back for another episode, and start it off with some really exciting news.

    Jesse Drama finally got his Doodle. 

    Then, Kyle breaks down Ethereum updates, Github unbanning Tornado Cash code, OpenSea, and so much more. 

    Connect with Kyle and Jesse:

    Kyle Knows -

    Instagram: kyleknows__

    Twitter: kyleknows_

    Jesse Drama -

    Twitter: realjessedrama

    Resources & Friends Of The Show:

    Blame Crypto Shop

    Blame Crypto Discord

    * If you feel like supporting the podcast:

    Kyle Knows: kyleknows.eth

    Jesse Drama: jessedrama.eth

    *** Not Financial Advice

    It Was An Honor - Paul's Security Weekly #557

    It Was An Honor - Paul's Security Weekly #557

    This week, we interview Founder and Product Manager of Netsparker, Ferruh Mavituna! In the Topic Segment, our very own Jeff Man gives us a recap of RSAC! In the news, we have updates from Equifax, John McAffe, Amazon, GitHub, and more on this episode of Paul's Security Weekly!


    Full Show Notes: https://wiki.securityweekly.com/Episode557

     

    Visit https://www.securityweekly.com/psw for all the latest episodes!

    #48 Fission: Fast app publishing for front end devs to ship web native apps

    #48 Fission: Fast app publishing for front end devs to ship web native apps

    Defining Fission

    Fission is an edge app publishing platform for front-end developers. As Boris Mann, one of its creators, defines it, “Fission is a stack of tools, identity files, and data storage that gives developers everything that's needed to run a full web app using only the front end.”

    Out of the box, Fission has some key benefits.

    • Runs anywhere: server, phone, laptop, or a mixture
    • Easy to deploy 
    • Automatic updates
    • Identity security and authorization

    Fission offers great developer and user experiences

    Developer-friendly features include:

    • DNS and SSL
    • Command-line interface (CLI) — can develop locally, don’t have to learn Git, can publish directly from CLI
    • Distributed architecture via interplanetary file system (IPFS) — all the files in the system are content addressed

    For users, Fission offers:

    • Private and encrypted user data
    • Data can be shared between apps
    • Runs in all browsers, including mobile browsers, and offline

    Fission and identity authorization features

    The typical OAuth authentication model uses access control lists (ACL), which have some downsides. The rules get complex quickly, and all authorization requests have to go through a central server, a potential bottleneck which can slow things down. As Boris puts it, “It’s like handing someone your house keys, and now they have access to your whole house.”

    Fission works differently. It’s a distributed authentication system built on JSON web tokens. Users have cryptographically signed certificates describing exactly what a given user is allowed to do. “In this model,” Boris explains, “you can delegate permissions to an app. And that app, in turn, can use a bunch of other services directly and sub-delegate things.”

    Fission bridges a gap

    Brooklyn Zelenka, the other creator behind Fission, concludes, “We've been trying to have these distributed, decentralized systems forever. But because there's this UX challenge, they get less adopted. With Fission, we're very much trying to bridge that gap. We want to make things usable and easy while still giving people as much autonomy and control as we possibly can.”

    Try Fission today.

    Platform.sh
    Learn more about us.
    Get started with a free trial.
    Have a question? Get in touch!

    Platform.sh on social media
    Twitter @platformsh
    Twitter (France): @platformsh_fr
    LinkedIn: Platform.sh
    LinkedIn (France): Platform.sh
    Facebook: Platform.sh

    Watch, listen, subscribe to the Platform.sh Deploy Friday podcast:
    YouTube
    Apple Podcasts
    Buzzsprout

    Platform.sh is a robust, reliable hosting platform that gives development teams the tools to build and scale applications efficiently. Whether you run one or one thousand websites, you can focus on creating features and functionality with your favorite tech stack.

    Gitigitt

    Gitigitt
    GitHub | Synology DS220j | neun Ingolstadt | FREKVENS | exentra Hackathon | Franzis | Amazon | Sentry x Codecov | Evernote x Bending Spoons | Directus | Notion AI | ChatGPT | WhatsApp | teenage.engineering | Apple | Gitolite | Gitea | GitLab | Dependabot | SonarQube | nexfil | mosint | brakence