Clone Wars - Open Source Clones of Popular Sites
100+ open-source clones and alternatives of popular sites like Airbnb, Amazon, Instagram, Netflix, TikTok, Spotify, WhatsApp, YouTube, etc.
List contains source code, tutorials, demo links, tech stack, and GitHub stars count. Great for learning purpose!
https://github.com/GorvGoyl/Clone-Wars
โค5
This media is not supported in your browser
VIEW IN TELEGRAM
Beautiful React Loaders Collection ๐ฏ
React Loadly is a modern, high-performance library of React loaders, spinners, and loading indicators.
Itโs built with TypeScript, optimized for Next.js / SSR, and designed with accessibility and developer experience in mind.
โโโ
๐ npm: https://www.npmjs.com/package/react-loadly
๐ GitHub: https://github.com/Mostafashadow1/react-loadly
๐ Showcase: https://mostafashadow1.github.io/react-loadly-showCases
โค7
ู
ู ุฃูู
ุงูู
ูุงููู
ุงููู ูุงุฒู
ุชุชุนูู
ูุง ูู React ๐ฏ
.
.
ุจูุถู ุงูููุ ุชู ูุดุฑ ุฃูู ู ูุงู ุนูู ู ุฏููุฉ JavaScript in Plain English ุนูู ู ูุตุฉ Medium ๐
.
.
The React Context API is a powerful feature for managing global state across a component tree, eliminating the need for prop drilling. Introduced in React 16.3, itโs beneficial for sharing data such as themes, authentication status, or user preferences.
โโโ
Read Full Article ๐
https://medium.com/javascript-in-plain-english/mastering-react-context-api-best-practices-patterns-and-pitfalls-655e3410cae5
.
.
ุจูุถู ุงูููุ ุชู ูุดุฑ ุฃูู ู ูุงู ุนูู ู ุฏููุฉ JavaScript in Plain English ุนูู ู ูุตุฉ Medium ๐
.
.
Mastering React Context API: Best Practices, Patterns, and Pitfalls ๐ฏ
The React Context API is a powerful feature for managing global state across a component tree, eliminating the need for prop drilling. Introduced in React 16.3, itโs beneficial for sharing data such as themes, authentication status, or user preferences.
โโโ
Read Full Article ๐
https://medium.com/javascript-in-plain-english/mastering-react-context-api-best-practices-patterns-and-pitfalls-655e3410cae5
โค6
ุฏุฑุฏุดุฉ ุณุฑูุนุฉ ุนู ุงูู WebRTC โก๏ธ
.
.
ูู ุฑุฌุนูุง ูุฏู ุจุงูุฐุงูุฑุฉ ุดููุฉ ูุฃูู ู ุฑุฉ ุฌุฑุจุช ุชุนู ู ู ูุงูู ุฉ ููุฏูู ุฃูููุงููุ ุฃููุฏ ููุช ู ูุจูุฑ ุฅูู ุดุงูู ุงูุดุฎุต ูุฏุงู ู ุจุงูุตูุช ูุงูุตูุฑุฉ ูู ููุณ ุงูููุช. ูู ูู ู ุง ุณุฃูุชุด ููุณู ููุชูุง: ุฅูู ุงููู ุจูุญุตู ุฎูู ุงูููุงููุณ ุนุดุงู ุงูุชุฌุฑุจุฉ ุฏู ุชุจุงู ุณููุฉ ุจุงูุดูู ุฏูุ
ุชุฎููู ุฅูู ุจุชูููู ุญุฏ ูู ุฏููุฉ ุชุงููุฉโฆ ุฅุฒุงู ุงูุตูุช ูุทูุน ู ู ุนูุฏูุ ูุนุฏู ุนูู ุดุจูุฉ ุงูุฅูุชุฑูุช ุจูู ุชุนููุฏุงุชูุงุ ููุตู ูู ูู ุฃูู ู ู ุซุงููุฉุ ูู ู ุบูุฑ ู ุง ูุจูู ููู delay ูุงุถุญุ
ูุฅุฒุงู ุงูููุฏูู ุจูุชุจุนุช frame ูุฑุงุก ุงูุชุงูู ูุฃูู ุจุซ ู ุจุงุดุฑุ ุฑุบู ุฅู ูู ุงููุต ููู firewalls ู NATs ูุฑุงูุชุฑุงุชุ ููุงุจูุงุช ุจุญุฑูุฉ ุจุทูู ุขูุงู ุงูููููู ุชุฑุงุชุ
ูููุง ูุธูุฑ ุฏูุฑ ุงูู WebRTC...
โโโ
๐ LinkedIn:
https://www.linkedin.com/posts/mentoor-io_mentoor-softwaredevelopment-softwaredeveloper-activity-7377714952352112640-Cs_-
๐ Facebook:
https://www.facebook.com/share/p/1DUxGMUET3
๐ Qabilah:
https://qabilah.com/posts/ุงุณุชูุดู-ุณุฑ-ุงูู-webrtc-ููู-ุชุชูุงุตู-ูู-ุงูููุช-ุงูุญูููู-ุจุฏูู-ุชุฃุฎูุฑ~m8y4l4HD_0I
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
.
.
ูู ุฑุฌุนูุง ูุฏู ุจุงูุฐุงูุฑุฉ ุดููุฉ ูุฃูู ู ุฑุฉ ุฌุฑุจุช ุชุนู ู ู ูุงูู ุฉ ููุฏูู ุฃูููุงููุ ุฃููุฏ ููุช ู ูุจูุฑ ุฅูู ุดุงูู ุงูุดุฎุต ูุฏุงู ู ุจุงูุตูุช ูุงูุตูุฑุฉ ูู ููุณ ุงูููุช. ูู ูู ู ุง ุณุฃูุชุด ููุณู ููุชูุง: ุฅูู ุงููู ุจูุญุตู ุฎูู ุงูููุงููุณ ุนุดุงู ุงูุชุฌุฑุจุฉ ุฏู ุชุจุงู ุณููุฉ ุจุงูุดูู ุฏูุ
ุชุฎููู ุฅูู ุจุชูููู ุญุฏ ูู ุฏููุฉ ุชุงููุฉโฆ ุฅุฒุงู ุงูุตูุช ูุทูุน ู ู ุนูุฏูุ ูุนุฏู ุนูู ุดุจูุฉ ุงูุฅูุชุฑูุช ุจูู ุชุนููุฏุงุชูุงุ ููุตู ูู ูู ุฃูู ู ู ุซุงููุฉุ ูู ู ุบูุฑ ู ุง ูุจูู ููู delay ูุงุถุญุ
ูุฅุฒุงู ุงูููุฏูู ุจูุชุจุนุช frame ูุฑุงุก ุงูุชุงูู ูุฃูู ุจุซ ู ุจุงุดุฑุ ุฑุบู ุฅู ูู ุงููุต ููู firewalls ู NATs ูุฑุงูุชุฑุงุชุ ููุงุจูุงุช ุจุญุฑูุฉ ุจุทูู ุขูุงู ุงูููููู ุชุฑุงุชุ
ูููุง ูุธูุฑ ุฏูุฑ ุงูู WebRTC...
โโโ
๐ LinkedIn:
https://www.linkedin.com/posts/mentoor-io_mentoor-softwaredevelopment-softwaredeveloper-activity-7377714952352112640-Cs_-
๐ Facebook:
https://www.facebook.com/share/p/1DUxGMUET3
๐ Qabilah:
https://qabilah.com/posts/ุงุณุชูุดู-ุณุฑ-ุงูู-webrtc-ููู-ุชุชูุงุตู-ูู-ุงูููุช-ุงูุญูููู-ุจุฏูู-ุชุฃุฎูุฑ~m8y4l4HD_0I
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
โค5
ููุฏูู ู
ูู
ุฌุฏูุง ๐ฏ
- ูุนูู ุฅูู Documentation ูููู ู ูู ุฉ ุฌุฏูุง.
- ุฃููุงุน ุงูู Documentation ุงูู ุฎุชููุฉ: README, Code Comments, API Docs, Architecture Docs, RFCs, OPDOCs.
- ุฅุฒุงู ุชูุชุจ Docs ูุนูุงูุฉ ูุณููุฉ ุชุชููู .
- ุงูุฃุฎุทุงุก ุงูุดุงุฆุนุฉ ุงููู ุจุชุจููุธ ุฃู Documentation.
โโโ
https://youtu.be/D92MZJboOxs
Documentation Best Practices | ุดุฑูุงุช ูุชูุฑ ุจุชูู ูู ุฑุบู ุฃูู ูุชู
- ูุนูู ุฅูู Documentation ูููู ู ูู ุฉ ุฌุฏูุง.
- ุฃููุงุน ุงูู Documentation ุงูู ุฎุชููุฉ: README, Code Comments, API Docs, Architecture Docs, RFCs, OPDOCs.
- ุฅุฒุงู ุชูุชุจ Docs ูุนูุงูุฉ ูุณููุฉ ุชุชููู .
- ุงูุฃุฎุทุงุก ุงูุดุงุฆุนุฉ ุงููู ุจุชุจููุธ ุฃู Documentation.
โโโ
https://youtu.be/D92MZJboOxs
YouTube
Documentation Best Practices | ุดุฑูุงุช ูุชูุฑ ุจุชูู
ูู ุฑุบู
ุฃูู
ูุชู
ุนู
ุฑู ุฏุฎูุช ู
ุดุฑูุน ุจุฑู
ุฌุฉ ูู
ุงููู
ุชุด ู
ูู ุญุงุฌุฉุ ุงูููุฏ ู
ูุฌูุฏุ ุจุณ ู
ููุด ุฃู ุชูุซูู (Documentation)... ุงููุชูุฌุฉุ ุถูุงุน ููุช ูู
ุฌููุฏุ ูุฃุฎุทุงุก ูุชูุฑ ูุงู ู
ู
ูู ุชุชุฌูุจ.
ูู ุงูููุฏูู ุฏู ูุดุงุฑู ู ุนุงูู :
- ูุนูู ุฅูู Documentation ูููู ู ูู ุฉ ุฌุฏูุง.
- ุฃููุงุน ุงูู Documentation ุงูู ุฎุชููุฉ: READMEโฆ
ูู ุงูููุฏูู ุฏู ูุดุงุฑู ู ุนุงูู :
- ูุนูู ุฅูู Documentation ูููู ู ูู ุฉ ุฌุฏูุง.
- ุฃููุงุน ุงูู Documentation ุงูู ุฎุชููุฉ: READMEโฆ
โค3
ู
ุฌู
ูุนุฉ ู
ูุงูุงุช ู
ู
ุชุงุฒุฉ ุชุฎุต Node.js ๐ฏ
.
.
https://www.builder.io/blog/visual-guide-to-nodejs-event-loop
https://www.builder.io/blog/NodeJS-visualizing-nextTick-and-promise-queues
https://www.builder.io/blog/visualizing-nodejs-timer-queue
https://www.builder.io/blog/visualizing-nodejs-io-queue
https://www.builder.io/blog/visualizing-nodejs-io-polling
https://www.builder.io/blog/visualizing-nodejs-check-queue
https://www.builder.io/blog/visualizing-nodejs-close-queue
.
.
Part 1: Visualizing the Node.js Event Loop
https://www.builder.io/blog/visual-guide-to-nodejs-event-loop
Part 2: Visualizing nextTick and Promise Queues in Node.js
https://www.builder.io/blog/NodeJS-visualizing-nextTick-and-promise-queues
Part 3: Visualizing Timer Queue in Node.js
https://www.builder.io/blog/visualizing-nodejs-timer-queue
Part 4: Visualizing the I/O Queue in the Node.js Event Loop
https://www.builder.io/blog/visualizing-nodejs-io-queue
Part 5: Visualizing I/O Polling in the Node.js Event Loop
https://www.builder.io/blog/visualizing-nodejs-io-polling
Part 6: Visualizing the Check Queue in the Node.js Event Loop
https://www.builder.io/blog/visualizing-nodejs-check-queue
Part 7: Visualizing the Close Queue in the Node.js Event Loop
https://www.builder.io/blog/visualizing-nodejs-close-queue
โค4
๐ ุงููุฑู ุจูู Hashing ู Encryption ู Salting ู Pepper
.
.
ุงูุฃุฑุจุน ู ุตุทูุญุงุช ูุฑูุจูู ู ู ุจุนุถ ูู ุฅู ูููู ูููู ุนูุงูุฉ ุจุชุฃู ูู ุงูู data. ุจุณ ุงูุญูููุฉ ุฅู ูู ูุงุญุฏ ูููู ููู ูุฏู ู ุฎุชูู ุชู ุงู ูุง ูุทุฑููุฉ ุงุณุชุฎุฏุงู ู ุฎุชููุฉุ ููู ุฎูุทุช ุจูููู ุฃู ุงุณุชุนู ูุช ุญุงุฌุฉ ู ูุงู ุงูุชุงููุฉ ูุชุนู ู ู ุดููุฉ ูุจูุฑุฉ ูู ุงูุณูุณุชู ุจุชุงุนู.
ุชุฎูู ู ุนุงูุง ุฅูู ุจุชุนู ู ู ูุตุฉ ูููุง ู ุณุชุฎุฏู ูู ุจูุณุฌููุง ุจุงูุฅูู ูู ูุงูุจุงุณูุฑุฏ. ุทุจูุนู ุฅูู ูุงุฒู ุชุฎุฒู ุงูุจุงุณูุฑุฏ ุจุดูู ุขู ูุ ุตุญุ ููุง ุจูู ุงูุณุคุงู:
- ูู ุฃุฎุฒู ุงูุจุงุณูุฑุฏ ุฒู ู ุง ูู plain textุ
- ุทุจ ูู ุฃุนู ูู Encryptionุ
- ููุง Hashing ููุงูุฉุ
- ุทุจ ุฅูู ูุงุฒู ุฉ ุงูู Saltุ ูุฅูู ุงููุฑู ุจูููุง ูุจูู ุงูู Pepperุ
โโโ
ุงูู Hashing ูู ุฅูู ุจุชุญูู ุงูู data (ุฒู ุงูุจุงุณูุฑุฏ) ูุณูุณูุฉ ู ู ุงูุฃุฑูุงู ูุงูุญุฑูู ู ููุงุด ู ุนูู.
ุงูู ูุฒุฉ ุงูุฃุณุงุณูุฉ: ุฏู one-wayุ ูุนูู ุชูุฏุฑ ุชุญูู ุงูุจุงุณูุฑุฏ ูู hashุ ููู ู ุณุชุญูู ุชุฑุฌุน ู ู ุงูู hash ููุจุงุณูุฑุฏ.
๐ ุงููุฏู: ุชุณุชุฎุฏู ู ุนุดุงู ุชุชุญูู ู ู ุงูุจูุงูุงุชุ ู ุด ุนุดุงู ุชุณุชุฑุฌุนูุง.
ู ุซุงู: ุงูู ุณุชุฎุฏู ูุฏุฎู ุงูุจุงุณูุฑุฏุ ูุฃูุช ุชุนู ูู hash ุจููุณ ุงูู algorithm ูุชูุงุฑู ู ุน ุงููู ู ุฎุฒูู.
โ ุงูู ุดููุฉ: ูู ุงุชููู ู ุณุชุฎุฏู ูู ุนูุฏูู ููุณ ุงูุจุงุณูุฑุฏุ ุงูู hash ุจุชุงุนูู ููุจูู ููุณ ุงููุชูุฌุฉ. ูุฏู ุจูุฎูู ุงูู ูุถูุน ุนุฑุถุฉ ููุฌู ุงุช ุฒู ุงูู Rainbow Tables.
โโโ
ุงูู Encryption ู ุฎุชูู ุชู ุงู ูุง. ููุง ุจุชุนู ู ุนู ููุฉ reversible (ูุนูู ูููุน ุชุฑุฌุน ููุจูุงูุงุช ุงูุฃุตููุฉ).
ุชุฎุฒู ุงูู data ู ุดูุฑุฉุ ูุชูุฏุฑ ุชูููุง ุจุงูู key.
๐ ุงููุฏู: ุญู ุงูุฉ ุงูุจูุงูุงุช ุงููู ูุงุฒู ุชุณุชุฑุฌุนูุง ุฒู ุงูุฑุณุงุฆูุ ุงูู ููุงุชุ ุจูุงูุงุช ุงููุฑูุฏุช ูุงุฑุฏโฆ ุฅูุฎ.
ู ุซุงู: ุชุดููุฑ ุฑุณุงูุฉ ูู ูุงุชุณุงุจุ ุงูู ุณุชูุจู ููุฏุฑ ููููุง ุจุงูู key ูุงูุฑุณุงูุฉ ุงูุฃุตููุฉ ุชุฑุฌุน.
โ ุงูู ุดููุฉ: ูู ุงูู key ุงุชุณุฑุจุ ูู ุญุงุฌุฉ ู ูุดููุฉ.
โโโ
ุงูู Salt ูู string ุนุดูุงุฆู ุจุชุถููู ููุจุงุณูุฑุฏ ูุจู ู ุง ุชุนู ูู hash.
ูููุ ุนุดุงู ุชู ูุน ุงููุฌู ุงุช ุงููู ุจุชุนุชู ุฏ ุนูู ุฅู ููุณ ุงูุจุงุณูุฑุฏ ุนูุฏู ููุณ ุงูู hash.
๐ ุงููุฏู: ุชุนู ู ูู hash ู ุฎุชูู ุญุชู ูู ููู ุงุช ุงูุณุฑ ู ุชุดุงุจูุฉ.
ู ุซุงู:
- ู ุณุชุฎุฏู 1 = "123456" + SaltA โ hash1
- ู ุณุชุฎุฏู 2 = "123456" + SaltB โ hash2
ุฑุบู ุฅู ุงูุจุงุณูุฑุฏ ูู ููุณูุ ููู ุงูู hash ู ุฎุชูู.
โโโ
ุงูู Pepper ุดุจู ุงูู Salt ููู ูู ููุทุฉ ู ุฎุชููุฉ: ุจูููู secret value ุจุชุถููู ููุจุงุณูุฑุฏ ูุจู ุงูู hashing.
ุจุนูุณ ุงูู Salt ุงููู ู ู ูู ูุชุฎุฒู ู ุน ุงูู hashุ ุงูู Pepper ู ุด ุจูุชุฎุฒู ูู ุงูุฏุงุชุงุจูุฒุ ุจูุชุฎุฒู ูู config ุขู ู ุฃู environment variable.
๐ ุงููุฏู: ุชุถูู ุทุจูุฉ ุญู ุงูุฉ ุฅุถุงููุฉ ุถุฏ ุฃู ุญุฏ ูุณุฑู ุงูุฏุงุชุงุจูุฒ. ุญุชู ูู ู ุนุงู ุงูู hashes + saltsุ ูุณู ูุงูุตู ุงูู pepper.
โโโ
ููู ุงุช ุงูุณุฑ ูุงุฒู ุชุชุญูุธ ุจุงูู Hashing + Salt + Pepperุ ู ุด ุจุงูู Encryption.
ุงูู Encryption ู ูุงูู ูู ุงูุจูุงูุงุช ุงููู ูุงุฒู ุชุณุชุฑุฌุนูุง ุฒู ุงูุฑุณุงุฆู ุฃู ุงูู ููุงุช.
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
.
.
ุงูุฃุฑุจุน ู ุตุทูุญุงุช ูุฑูุจูู ู ู ุจุนุถ ูู ุฅู ูููู ูููู ุนูุงูุฉ ุจุชุฃู ูู ุงูู data. ุจุณ ุงูุญูููุฉ ุฅู ูู ูุงุญุฏ ูููู ููู ูุฏู ู ุฎุชูู ุชู ุงู ูุง ูุทุฑููุฉ ุงุณุชุฎุฏุงู ู ุฎุชููุฉุ ููู ุฎูุทุช ุจูููู ุฃู ุงุณุชุนู ูุช ุญุงุฌุฉ ู ูุงู ุงูุชุงููุฉ ูุชุนู ู ู ุดููุฉ ูุจูุฑุฉ ูู ุงูุณูุณุชู ุจุชุงุนู.
ุชุฎูู ู ุนุงูุง ุฅูู ุจุชุนู ู ู ูุตุฉ ูููุง ู ุณุชุฎุฏู ูู ุจูุณุฌููุง ุจุงูุฅูู ูู ูุงูุจุงุณูุฑุฏ. ุทุจูุนู ุฅูู ูุงุฒู ุชุฎุฒู ุงูุจุงุณูุฑุฏ ุจุดูู ุขู ูุ ุตุญุ ููุง ุจูู ุงูุณุคุงู:
- ูู ุฃุฎุฒู ุงูุจุงุณูุฑุฏ ุฒู ู ุง ูู plain textุ
- ุทุจ ูู ุฃุนู ูู Encryptionุ
- ููุง Hashing ููุงูุฉุ
- ุทุจ ุฅูู ูุงุฒู ุฉ ุงูู Saltุ ูุฅูู ุงููุฑู ุจูููุง ูุจูู ุงูู Pepperุ
โโโ
๐ข ุงูู Hashing
ุงูู Hashing ูู ุฅูู ุจุชุญูู ุงูู data (ุฒู ุงูุจุงุณูุฑุฏ) ูุณูุณูุฉ ู ู ุงูุฃุฑูุงู ูุงูุญุฑูู ู ููุงุด ู ุนูู.
ุงูู ูุฒุฉ ุงูุฃุณุงุณูุฉ: ุฏู one-wayุ ูุนูู ุชูุฏุฑ ุชุญูู ุงูุจุงุณูุฑุฏ ูู hashุ ููู ู ุณุชุญูู ุชุฑุฌุน ู ู ุงูู hash ููุจุงุณูุฑุฏ.
๐ ุงููุฏู: ุชุณุชุฎุฏู ู ุนุดุงู ุชุชุญูู ู ู ุงูุจูุงูุงุชุ ู ุด ุนุดุงู ุชุณุชุฑุฌุนูุง.
ู ุซุงู: ุงูู ุณุชุฎุฏู ูุฏุฎู ุงูุจุงุณูุฑุฏุ ูุฃูุช ุชุนู ูู hash ุจููุณ ุงูู algorithm ูุชูุงุฑู ู ุน ุงููู ู ุฎุฒูู.
โ ุงูู ุดููุฉ: ูู ุงุชููู ู ุณุชุฎุฏู ูู ุนูุฏูู ููุณ ุงูุจุงุณูุฑุฏุ ุงูู hash ุจุชุงุนูู ููุจูู ููุณ ุงููุชูุฌุฉ. ูุฏู ุจูุฎูู ุงูู ูุถูุน ุนุฑุถุฉ ููุฌู ุงุช ุฒู ุงูู Rainbow Tables.
โโโ
๐ต ุงูู Encryption
ุงูู Encryption ู ุฎุชูู ุชู ุงู ูุง. ููุง ุจุชุนู ู ุนู ููุฉ reversible (ูุนูู ูููุน ุชุฑุฌุน ููุจูุงูุงุช ุงูุฃุตููุฉ).
ุชุฎุฒู ุงูู data ู ุดูุฑุฉุ ูุชูุฏุฑ ุชูููุง ุจุงูู key.
๐ ุงููุฏู: ุญู ุงูุฉ ุงูุจูุงูุงุช ุงููู ูุงุฒู ุชุณุชุฑุฌุนูุง ุฒู ุงูุฑุณุงุฆูุ ุงูู ููุงุชุ ุจูุงูุงุช ุงููุฑูุฏุช ูุงุฑุฏโฆ ุฅูุฎ.
ู ุซุงู: ุชุดููุฑ ุฑุณุงูุฉ ูู ูุงุชุณุงุจุ ุงูู ุณุชูุจู ููุฏุฑ ููููุง ุจุงูู key ูุงูุฑุณุงูุฉ ุงูุฃุตููุฉ ุชุฑุฌุน.
โ ุงูู ุดููุฉ: ูู ุงูู key ุงุชุณุฑุจุ ูู ุญุงุฌุฉ ู ูุดููุฉ.
โโโ
๐ก ุงูู Salting
ุงูู Salt ูู string ุนุดูุงุฆู ุจุชุถููู ููุจุงุณูุฑุฏ ูุจู ู ุง ุชุนู ูู hash.
ูููุ ุนุดุงู ุชู ูุน ุงููุฌู ุงุช ุงููู ุจุชุนุชู ุฏ ุนูู ุฅู ููุณ ุงูุจุงุณูุฑุฏ ุนูุฏู ููุณ ุงูู hash.
๐ ุงููุฏู: ุชุนู ู ูู hash ู ุฎุชูู ุญุชู ูู ููู ุงุช ุงูุณุฑ ู ุชุดุงุจูุฉ.
ู ุซุงู:
- ู ุณุชุฎุฏู 1 = "123456" + SaltA โ hash1
- ู ุณุชุฎุฏู 2 = "123456" + SaltB โ hash2
ุฑุบู ุฅู ุงูุจุงุณูุฑุฏ ูู ููุณูุ ููู ุงูู hash ู ุฎุชูู.
โโโ
๐ด ุงูู Pepper
ุงูู Pepper ุดุจู ุงูู Salt ููู ูู ููุทุฉ ู ุฎุชููุฉ: ุจูููู secret value ุจุชุถููู ููุจุงุณูุฑุฏ ูุจู ุงูู hashing.
ุจุนูุณ ุงูู Salt ุงููู ู ู ูู ูุชุฎุฒู ู ุน ุงูู hashุ ุงูู Pepper ู ุด ุจูุชุฎุฒู ูู ุงูุฏุงุชุงุจูุฒุ ุจูุชุฎุฒู ูู config ุขู ู ุฃู environment variable.
๐ ุงููุฏู: ุชุถูู ุทุจูุฉ ุญู ุงูุฉ ุฅุถุงููุฉ ุถุฏ ุฃู ุญุฏ ูุณุฑู ุงูุฏุงุชุงุจูุฒ. ุญุชู ูู ู ุนุงู ุงูู hashes + saltsุ ูุณู ูุงูุตู ุงูู pepper.
โโโ
ููู ุงุช ุงูุณุฑ ูุงุฒู ุชุชุญูุธ ุจุงูู Hashing + Salt + Pepperุ ู ุด ุจุงูู Encryption.
ุงูู Encryption ู ูุงูู ูู ุงูุจูุงูุงุช ุงููู ูุงุฒู ุชุณุชุฑุฌุนูุง ุฒู ุงูุฑุณุงุฆู ุฃู ุงูู ููุงุช.
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
โค12๐ฅ5
ุฏุฑุฏุดุฉ ุณุฑูุนุฉ ุนู ุงูู OAuth 2.0 ๐ก
.
.
ุชุฎูู ุฅูู ุฏุงุฎู ุชุณุฌูู ูู ุชุทุจูู ุฌุฏูุฏ ุนูุดุงู ุชุชุงุจุน ููุฑุณุงุชุ ููู ุง ุฌูุช ุชุณุฌููุ ุงูุชุทุจูู ูุงูู:
"ุชูุฏุฑ ุชุณุฌูู ุจุญุณุงุจ Google ุฃู GitHub ุจุฏู ู ุง ุชุนู ู ุฃูููุช ุฌุฏูุฏ"
ุถุบุทุช ุนูู ุฒุฑุงุฑ "Continue with Google"ุ ูGoogle ุทูุจุช ู ูู ุชุฎุชุงุฑ ุงูุฅูู ูู ูุชูุงูู ุนูู ุดููุฉ ุตูุงุญูุงุช.
ุจุนุฏูุง ุงูุชุทุจูู ูุชุญ ูุงุดุชุบู ููุฃูู ุนู ูุช sign up ูุนููุง...
ุฅูู ุงููู ุญุตู ููุงุ ๐ค
ุงููู ุญุตู ุจุงูุถุจุท ูู ุฅู Google ุงุณุชุฎุฏู ุช ุญุงุฌุฉ ุงุณู ูุง OAuth 2.0.
โโโ
ุจุจุณุงุทุฉุ ุงูู OAuth 2.0 ูู ุจุฑูุชูููู authorization (ู ุด authentication)ุ ุจูุฎููู ุงูุชุทุจููุงุช ุชูุฏุฑ ุชุงุฎุฏ ุฅุฐู ู ู ุงูู ุณุชุฎุฏู ุนุดุงู ุชุฏุฎู ุนูู ุฌุฒุก ู ู ู ุนููู ุงุชู ูู service ุชุงููุฉ (ุฒู Google, Facebook, GitHub) ู ู ุบูุฑ ู ุง ูุนุฑููุง ุงูุจุงุณูุฑุฏ ุจุชุงุนุชู.
ูุนูู ุงูุชุทุจูู ุงููู ุจุชุณุชุฎุฏู ู ู ุด ุจูุดูู ุงูุจุงุณูุฑุฏ ุจุชุงุนุชูุ ุจุณ ุจูุงุฎุฏ ุชููู ู ุคูุช ููุฏุฑ ูุณุชุฎุฏู ู ูุฏุฎู ุนูู ุงูู APIs ุงููู ุฃูุช ูุงููุช ุนูููุง.
ูุฏู ุจูุฎูู ุงูุนู ููุฉ ุขู ูุฉุ ูุจูุญุงูุธ ุนูู ุงูุฎุตูุตูุฉ ุจุชุงุนุชู.
โโโ
ุชุนุงู ูู ุดู ุฎุทูุฉ ุจุฎุทูุฉ ูู ุงูู flow ุงูู ุดููุฑ ุจุชุงุน Authorization Code Grant Flowุ ูุงููู ุจูุณุชุฎุฏู ูู web apps
1- ุงูู User Requests Login
ุงูุชุทุจูู (Client) ููููู: "ุณุฌูู ุจุญุณุงุจ Google ู ุซููุง"ุ ูุงูู ุณุชุฎุฏู ูุถุบุท ุนูู ุงูุฒุฑุงุฑุ ููุชู ุชูุฌููู ุนูู authorization server (ุฒู Google).
2- ุงูู User Grants Permission
ุฌูุฌู ูุทูุจ ู ูู ุชุณุฌูู ุฏุฎูู ูุชูุงูู ุนูู ุงูู permissions ุงููู ุงูุชุทุจูู ุทุงูุจูุง (ุฒู ุงูุฅูู ููุ ุงูุงุณู ุ ุฅูุฎ).
3- ุงูู Authorization Code
ูู ูุงููุชุ Google ููุจุนุช authorization code ููุชุทุจูู (ุฃู ุชุญุฏูุฏูุง ููู redirect URL ุงููู ุงูุชุทุจูู ุญุฏุฏู ูุจู ูุฏู).
4- ุงูู Token Exchange
ุงูุชุทุจูู ูุงุฎุฏ ุงูู authorization code ุฏู ููุจุนุช request ูู token endpoint ุนูุดุงู ูุจุฏูู ุจู access token (ูุณุงุนุงุช ูู ุงู refresh token).
5- ุงูู Access Protected APIs
ุจู ุฌุฑุฏ ู ุง ุงูุชุทุจูู ูุงุฎุฏ ุงูู access tokenุ ููุฏุฑ ูุณุชุฎุฏู ู ูุทูุจ ุจูุงูุงุช ู ู Google APIsุ ุจุณ ูู ุญุฏูุฏ ุงูู scope ุงููู ูุงููุช ุนููู.
โโโ
ูู ุนูุฏู API ูุนุงูุฒ ุชุฃู ููุงุ ู ู ูู ุชุณุชุฎุฏู OAuth 2.0 ุจุญูุซ:
- ุฃู Client ู ุด ูููุฏุฑ ููุตู ูู API ุบูุฑ ูู ุง ููุฏูู Access Token ุตุงูุญ.
- ุงูู Backend ุจุชุงุนู ููุฏุฑ ูุชุญููู ู ู ุงูุชููู (ู ุซููุง JWT ุฃู ุนู ุทุฑูู introspection endpoint).
- ุชูุฏุฑ ุชุชุญููู ูู ุงูุตูุงุญูุงุช ุนู ุทุฑูู ุงูู scope (ูุนูู ู ุซููุง ุชููู ู ุนูู ููุฏุฑ ููุฑุฃ ุจุณุ ูุชููู ุชุงูู ููุฏุฑ ููุชุจ ููุนุฏูู).
- ุชูุฏุฑ ุชุณุญุจ ุตูุงุญูุงุช ุงูุชููู ูู ุฃู ููุช (Revoke).
ุจุงูุชุงููุ OAuth 2.0 ุจูุฃู ูู ุงูู APIs ุนู ุทุฑูู ุฅูู:
โ ุจูููู ุงูุงุนุชู ุงุฏ ุนูู ููู ุงุช ุงูู ุฑูุฑ
โ ุจูุณู ุญ ุจุงูู delegation (ุชุทุจูู ูุงุฎุฏ ุฅุฐู ู ู ู ุณุชุฎุฏู ููุตู ูุญุงุฌุฉ ู ุด ุจุชุงุนุชู)
โ ุจูุฎูู ุงูู tokens ู ุคูุชุฉุ ูู ู ูู ุชุชุญูู ูู ุตูุงุญูุงุชูุง ูู ุฏูุชูุง
โโโ
- ุงูู Authorization Code (with PKCE): ููู ูุจุงูู ูุงูููุจ.
- ุงูู Client Credentials: ููู machine-to-machine apps.
- ุงูู Password (deprecated): ูุงู ุจูุณุชุฎุฏู ูู ุง ุงูู ุณุชุฎุฏู ููุชุจ ุงูู username ูุงูุจุงุณูุฑุฏ ูู ููุณ ุงูุชุทุจูู (ุบูุฑ ุขู ู).
- ุงูู Implicit (deprecated): ุฒู ุงู ูุงู ุจูุชุณุชุฎุฏู ููู SPA apps ูููู ุบูุฑ ู ูุตู ุจู.
โโโ
ูู ููุช ุจุชุณุชุฎุฏู OAuth 2.0 ูู ู ูุจุงูู ุฃู SPA appุ ูุงุฒู ุชุณุชุฎุฏู ุญุงุฌุฉ ุงุณู ูุง PKCE (Proof Key for Code Exchange) ุนูุดุงู ุชู ูุน ุงูู authorization code ู ู ุฅูู ูุชุณุฑู.
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
.
.
ุชุฎูู ุฅูู ุฏุงุฎู ุชุณุฌูู ูู ุชุทุจูู ุฌุฏูุฏ ุนูุดุงู ุชุชุงุจุน ููุฑุณุงุชุ ููู ุง ุฌูุช ุชุณุฌููุ ุงูุชุทุจูู ูุงูู:
"ุชูุฏุฑ ุชุณุฌูู ุจุญุณุงุจ Google ุฃู GitHub ุจุฏู ู ุง ุชุนู ู ุฃูููุช ุฌุฏูุฏ"
ุถุบุทุช ุนูู ุฒุฑุงุฑ "Continue with Google"ุ ูGoogle ุทูุจุช ู ูู ุชุฎุชุงุฑ ุงูุฅูู ูู ูุชูุงูู ุนูู ุดููุฉ ุตูุงุญูุงุช.
ุจุนุฏูุง ุงูุชุทุจูู ูุชุญ ูุงุดุชุบู ููุฃูู ุนู ูุช sign up ูุนููุง...
ุฅูู ุงููู ุญุตู ููุงุ ๐ค
ุงููู ุญุตู ุจุงูุถุจุท ูู ุฅู Google ุงุณุชุฎุฏู ุช ุญุงุฌุฉ ุงุณู ูุง OAuth 2.0.
โโโ
๐ ูุนูู ุฅูู OAuth 2.0ุ
ุจุจุณุงุทุฉุ ุงูู OAuth 2.0 ูู ุจุฑูุชูููู authorization (ู ุด authentication)ุ ุจูุฎููู ุงูุชุทุจููุงุช ุชูุฏุฑ ุชุงุฎุฏ ุฅุฐู ู ู ุงูู ุณุชุฎุฏู ุนุดุงู ุชุฏุฎู ุนูู ุฌุฒุก ู ู ู ุนููู ุงุชู ูู service ุชุงููุฉ (ุฒู Google, Facebook, GitHub) ู ู ุบูุฑ ู ุง ูุนุฑููุง ุงูุจุงุณูุฑุฏ ุจุชุงุนุชู.
ูุนูู ุงูุชุทุจูู ุงููู ุจุชุณุชุฎุฏู ู ู ุด ุจูุดูู ุงูุจุงุณูุฑุฏ ุจุชุงุนุชูุ ุจุณ ุจูุงุฎุฏ ุชููู ู ุคูุช ููุฏุฑ ูุณุชุฎุฏู ู ูุฏุฎู ุนูู ุงูู APIs ุงููู ุฃูุช ูุงููุช ุนูููุง.
ูุฏู ุจูุฎูู ุงูุนู ููุฉ ุขู ูุฉุ ูุจูุญุงูุธ ุนูู ุงูุฎุตูุตูุฉ ุจุชุงุนุชู.
โโโ
๐ ุฅุฒุงู ุงูู OAuth 2.0 ุจูุดุชุบูุ
ุชุนุงู ูู ุดู ุฎุทูุฉ ุจุฎุทูุฉ ูู ุงูู flow ุงูู ุดููุฑ ุจุชุงุน Authorization Code Grant Flowุ ูุงููู ุจูุณุชุฎุฏู ูู web apps
1- ุงูู User Requests Login
ุงูุชุทุจูู (Client) ููููู: "ุณุฌูู ุจุญุณุงุจ Google ู ุซููุง"ุ ูุงูู ุณุชุฎุฏู ูุถุบุท ุนูู ุงูุฒุฑุงุฑุ ููุชู ุชูุฌููู ุนูู authorization server (ุฒู Google).
2- ุงูู User Grants Permission
ุฌูุฌู ูุทูุจ ู ูู ุชุณุฌูู ุฏุฎูู ูุชูุงูู ุนูู ุงูู permissions ุงููู ุงูุชุทุจูู ุทุงูุจูุง (ุฒู ุงูุฅูู ููุ ุงูุงุณู ุ ุฅูุฎ).
3- ุงูู Authorization Code
ูู ูุงููุชุ Google ููุจุนุช authorization code ููุชุทุจูู (ุฃู ุชุญุฏูุฏูุง ููู redirect URL ุงููู ุงูุชุทุจูู ุญุฏุฏู ูุจู ูุฏู).
4- ุงูู Token Exchange
ุงูุชุทุจูู ูุงุฎุฏ ุงูู authorization code ุฏู ููุจุนุช request ูู token endpoint ุนูุดุงู ูุจุฏูู ุจู access token (ูุณุงุนุงุช ูู ุงู refresh token).
5- ุงูู Access Protected APIs
ุจู ุฌุฑุฏ ู ุง ุงูุชุทุจูู ูุงุฎุฏ ุงูู access tokenุ ููุฏุฑ ูุณุชุฎุฏู ู ูุทูุจ ุจูุงูุงุช ู ู Google APIsุ ุจุณ ูู ุญุฏูุฏ ุงูู scope ุงููู ูุงููุช ุนููู.
โโโ
ุฅุฒุงู ุจูุฃู ู ุงูู APIsุ ๐
ูู ุนูุฏู API ูุนุงูุฒ ุชุฃู ููุงุ ู ู ูู ุชุณุชุฎุฏู OAuth 2.0 ุจุญูุซ:
- ุฃู Client ู ุด ูููุฏุฑ ููุตู ูู API ุบูุฑ ูู ุง ููุฏูู Access Token ุตุงูุญ.
- ุงูู Backend ุจุชุงุนู ููุฏุฑ ูุชุญููู ู ู ุงูุชููู (ู ุซููุง JWT ุฃู ุนู ุทุฑูู introspection endpoint).
- ุชูุฏุฑ ุชุชุญููู ูู ุงูุตูุงุญูุงุช ุนู ุทุฑูู ุงูู scope (ูุนูู ู ุซููุง ุชููู ู ุนูู ููุฏุฑ ููุฑุฃ ุจุณุ ูุชููู ุชุงูู ููุฏุฑ ููุชุจ ููุนุฏูู).
- ุชูุฏุฑ ุชุณุญุจ ุตูุงุญูุงุช ุงูุชููู ูู ุฃู ููุช (Revoke).
ุจุงูุชุงููุ OAuth 2.0 ุจูุฃู ูู ุงูู APIs ุนู ุทุฑูู ุฅูู:
โ ุจูููู ุงูุงุนุชู ุงุฏ ุนูู ููู ุงุช ุงูู ุฑูุฑ
โ ุจูุณู ุญ ุจุงูู delegation (ุชุทุจูู ูุงุฎุฏ ุฅุฐู ู ู ู ุณุชุฎุฏู ููุตู ูุญุงุฌุฉ ู ุด ุจุชุงุนุชู)
โ ุจูุฎูู ุงูู tokens ู ุคูุชุฉุ ูู ู ูู ุชุชุญูู ูู ุตูุงุญูุงุชูุง ูู ุฏูุชูุง
โโโ
๐ ุฃููุงุน ุงููGrant Types ุงูู ุดููุฑุฉ:
- ุงูู Authorization Code (with PKCE): ููู ูุจุงูู ูุงูููุจ.
- ุงูู Client Credentials: ููู machine-to-machine apps.
- ุงูู Password (deprecated): ูุงู ุจูุณุชุฎุฏู ูู ุง ุงูู ุณุชุฎุฏู ููุชุจ ุงูู username ูุงูุจุงุณูุฑุฏ ูู ููุณ ุงูุชุทุจูู (ุบูุฑ ุขู ู).
- ุงูู Implicit (deprecated): ุฒู ุงู ูุงู ุจูุชุณุชุฎุฏู ููู SPA apps ูููู ุบูุฑ ู ูุตู ุจู.
โโโ
ูู ููุช ุจุชุณุชุฎุฏู OAuth 2.0 ูู ู ูุจุงูู ุฃู SPA appุ ูุงุฒู ุชุณุชุฎุฏู ุญุงุฌุฉ ุงุณู ูุง PKCE (Proof Key for Code Exchange) ุนูุดุงู ุชู ูุน ุงูู authorization code ู ู ุฅูู ูุชุณุฑู.
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
โค11
Master Async Iterators โ
Make your JavaScript apps faster and smarter with async iterators.
Stream data efficiently, handle errors gracefully, and keep performance top-notch
โค5