DevGuide ๐Ÿ‡ต๐Ÿ‡ธ
10.9K subscribers
2.64K photos
18 videos
127 files
3.55K links
Join our channel for top-notch programming hacks, epic discussions, and brilliant career moves. ๐Ÿš€

โšก๏ธ Stay connected with me: linktr.ee/AliSamir

๐Ÿ“ To advertise on the channel: https://telega.io/c/the_developer_guide
Download Telegram
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 ๐Ÿš€
.
.
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

โ€”โ€”โ€”

ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ
โค5
ููŠุฏูŠูˆ ู…ู‡ู… ุฌุฏู‹ุง ๐Ÿ’ฏ

Documentation Best Practices | ุดุฑูƒุงุช ูƒุชูŠุฑ ุจุชู‡ู…ู„ู‡ ุฑุบู… ุฃู‡ู…ูŠุชู‡


- ูŠุนู†ูŠ ุฅูŠู‡ Documentation ูˆู„ูŠู‡ ู…ู‡ู…ุฉ ุฌุฏู‹ุง.
- ุฃู†ูˆุงุน ุงู„ู€ Documentation ุงู„ู…ุฎุชู„ูุฉ: README, Code Comments, API Docs, Architecture Docs, RFCs, OPDOCs.
- ุฅุฒุงูŠ ุชูƒุชุจ Docs ูุนู‘ุงู„ุฉ ูˆุณู‡ู„ุฉ ุชุชูู‡ู….
- ุงู„ุฃุฎุทุงุก ุงู„ุดุงุฆุนุฉ ุงู„ู„ูŠ ุจุชุจูˆู‘ุธ ุฃูŠ Documentation.

โ€”โ€”โ€”

https://youtu.be/D92MZJboOxs
โค3
ู…ุฌู…ูˆุนุฉ ู…ู‚ุงู„ุงุช ู…ู…ุชุงุฒุฉ ุชุฎุต Node.js ๐Ÿ’ฏ
.
.
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


ุงู„ู€ 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
๐Ÿ”ฐ JavaScript DOM Selection and Manipulation
โค5
ุฏุฑุฏุดุฉ ุณุฑูŠุนุฉ ุนู† ุงู„ู€ OAuth 2.0 ๐Ÿ’ก
.
.
ุชุฎูŠู„ ุฅู†ูƒ ุฏุงุฎู„ ุชุณุฌู‘ู„ ููŠ ุชุทุจูŠู‚ ุฌุฏูŠุฏ ุนู„ุดุงู† ุชุชุงุจุน ูƒูˆุฑุณุงุชุŒ ูˆู„ู…ุง ุฌูŠุช ุชุณุฌู‘ู„ุŒ ุงู„ุชุทุจูŠู‚ ู‚ุงู„ูƒ:
"ุชู‚ุฏุฑ ุชุณุฌู‘ู„ ุจุญุณุงุจ 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
Debugging Tips in Next.js ๐Ÿ’ฏ
โค4
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