رقصنده با کد – Telegram
رقصنده با کد
783 subscribers
1.69K photos
850 videos
207 files
665 links
Here are some interesting things I've come across during my learning process. That's it. Admin ID:
@alithecodeguy
Download Telegram
اگر این کتاب توی حالت مستی یا چتی نوشته نشده باشه ، میشه گفت وودی آلن نابغه قرنه!
فرق OAuth 2.0 و OpenID Connect چیه؟

🔹 OAuth 2.0
یک استاندارد برای اجازه دسترسی (Authorization) هست.
با OAuth، یه برنامه می‌تونه به جای شما به یه سرویس دیگه دسترسی پیدا کنه، بدون اینکه رمزتون رو بگیره.

پس چطور اپ‌ها اسم کاربر رو نشون میدن؟
در واقع، اسم و اطلاعات کاربر رو از خود اون API می‌گیرن — نه از OAuth.

یعنی خود OAuth کار احراز هویت نمی‌کنه، فقط راه دسترسی رو باز می‌کنه.
ولی چون گوگل یه API داره که اطلاعات کاربر رو میده، اپ می‌تونه بفهمه اسم کیه.

مثلاً:
۱- اپ با OAuth وارد گوگل میشه.
۲- گوگل یه Access Token میده.
۳- اپ با اون توکن میره سراغ یه API دیگه (مثلاً https://www.googleapis.com/oauth2/v2/userinfo).
۴- اون API اطلاعات کاربر (اسم، ایمیل و…) رو برمی‌گردونه.

🔹 OpenID Connect (OIDC)
در واقع یه لایه‌ی اضافه روی OAuth 2.0 هست که برای احراز هویت (Authentication) ساخته شده.
با OIDC، اپلیکیشن می‌تونه بفهمه شما کی هستی و از اطلاعات پروفایل‌تون (مثل نام یا ایمیل) مطمئن بشه.

همچنین OIDC یه ID Token هم به اپ می‌ده که داخلش اطلاعات هویت کاربر هست و امضای دیجیتال داره،
این باعث میشه اپ مطمئن باشه که کاربر واقعاً همون کسیه که میگه.

--------------

مثال واقعی ورود با Google (OAuth 2.0 + OIDC)

۱- کاربر می‌خواهد با حساب گوگل خود وارد یک اپ وب شود.

۲- اپ (Client) کاربر را به Authorization Server گوگل هدایت می‌کند تا اجازه دسترسی بدهد.
در URL درخواست، اطلاعاتی مثل client_id، redirect_uri و scope=email profile openid فرستاده می‌شود.

۳- کاربر وارد حساب گوگل می‌شود و اجازه می‌دهد اپ به اطلاعات پروفایل او دسترسی پیدا کند.

۴- گوگل پس از تأیید، یک Authorization Code کوتاه‌مدت تولید می‌کند و به redirect_uri اپ بازمی‌گرداند.

۵- اپ Authorization Code را همراه با client_secret به گوگل می‌فرستد تا آن را با Access Token و ID Token تبادل کند.

۶- گوگل پس از بررسی، یک Access Token برای دسترسی به API و یک ID Token برای احراز هویت می‌دهد.
ID Token شامل اطلاعاتی مثل شناسه یکتا (sub)، نام و ایمیل کاربر است و امضای دیجیتال دارد.

۷- اپ با استفاده از Access Token، درخواست API به Resource Server گوگل می‌فرستد تا اطلاعات مورد نیاز کاربر را دریافت کند.

۸-در مرحله بعد Resource Server توکن را بررسی می‌کند و اگر معتبر باشد، داده‌های کاربر (مثلاً ایمیل و نام) را برمی‌گرداند.

۹- اپ با استفاده از ID Token هم مطمئن می‌شود که کاربر واقعاً همان کسی است که ادعا می‌کند، بدون اینکه دوباره رمز را بخواهد.

۱۰- در نتیجه، کاربر با یک کلیک وارد اپ می‌شود و اپ هم هم داده‌ها و هم هویت او را به صورت امن دریافت می‌کند.

@alithecodeguy
رقصنده با کد
فرق OAuth 2.0 و OpenID Connect چیه؟ 🔹 OAuth 2.0 یک استاندارد برای اجازه دسترسی (Authorization) هست. با OAuth، یه برنامه می‌تونه به جای شما به یه سرویس دیگه دسترسی پیدا کنه، بدون اینکه رمزتون رو بگیره. پس چطور اپ‌ها اسم کاربر رو نشون میدن؟ در واقع، اسم و…
مثال فنی‌تر:

وقتی در اپی می‌خواهید با استفاده از استاندارهای پست قبل و از طریق سروری مثل گوگل یا هر سرور شخصی یا غیر شخصی دیگری که این استاندارها رو پشتیبانی می‌کند ، لاگین کنید ، اتفاقی مشابه مراحل زیر اتفاق میفته:

۱- مسیر ارسال توکن به اپ

- کاربر به اپ مراجعه می‌کند و روی «Login with Google» کلیک می‌کند.
- اپ کاربر را به Authorization Server گوگل هدایت می‌کند (مثلاً یک URL شامل client_id و redirect_uri).
- مرورگر شما به گوگل می‌رود و کوکی گوگل به Authorization Server فرستاده می‌شود. گوگل متوجه می‌شود شما قبلاً لاگین کرده‌اید.

۲- صدور Authorization Code

- گوگل یک Authorization Code کوتاه‌مدت ایجاد می‌کند.
- سپس مرورگر شما را به redirect_uri اپ بازمی‌گرداند و این کد را در URL به اپ می‌دهد:
https://app.example.com/callback?code=AUTH_CODE
- یعنی اپ به طور مستقیم کوکی گوگل را نمی‌بیند، بلکه فقط این کد را از URL دریافت می‌کند.

۳- تبادل کد با توکن

- اپ این Authorization Code را همراه با client_id و client_secret خودش به سرور گوگل می‌فرستد (یک درخواست مستقیم از سرور اپ به گوگل).
- گوگل بررسی می‌کند و اگر کد معتبر باشد، Access Token و ID Token برای اپ صادر می‌کند.

۴- استفاده از توکن

اپ این توکن‌ها را دریافت می‌کند و حالا می‌تواند:
- با Access Token از API گوگل داده‌ها را بخواند (مثلاً ایمیل و پروفایل).
- با ID Token هویت کاربر را تأیید کند.

سپس اپ یک نشست (Session) روی دامنه خودش ایجاد می‌کند و کاربر وارد اپ می‌شود.

@alithecodeguy

#login #oauth
گفته میشه لینوکس اپن سورسه. تا اینجاش اوکیه.

ولی هر چیز اپن سورسی امنه یا برای کاربر مشکلی ایجاد نمیکنه؟

اپن سورس بودن به خود خودی خوب نیست. اگر کسی بره کدها رو بخونه و مطمن بشه که همه چی اوکیه ، اون موقع‌اس که خوبه.

مثال بزنم. چند سال پیش یک باگی روی لینوکس شناخته شد که اگر موقع لاگین ۲۸ بار بک‌‌اسپیس میزدی لاگین میکرد. گویا خیلی هم کد واضحی داشته. خیلی وقت هم بوده.

اگر واقعا کسی رفته بود خونده بود این مشکل پیش میومد؟

حالا فرضا کسی رفت و همه کد رو خوند. آیا تمام کتابخانه‌هاش رو میره بخونه؟ ایا کتابخانه کتابخانه‌هاش رو هم میره بخونه؟ اومدیم و همه چی اوکی بود. با بک‌دور روی سی‌پی‌یو اینتل چیکار میشه کرد؟

خلاصه که امنیت و اپن سورس بودن شوخی‌ای بیش نیست. شل کنید لذت ببرید
ما میگیم بزا بعد بزرگش کن
فلسفه خط عابر پیاده در ایران:
اگر عابر از روش رد نشد ، بگیر روش.
اگر عابر از روش رد شد ، گاز بده زودتر رد شی.
رقصنده با کد
بزرگترین Red flag یک شرکت: ۱- پنج‌شنبه‌ها هم هستن ۲- مصاحبه اول حضوریه ۳- تست نمیگیرن و تسک میدن که بری خونه انجام بدی حتی ۱ دونه از اینها هم کافیه تا کلا اون شرکت کنسل باشه.
در ادامه ردفلگ‌های شرکت‌ها:

۴. نداشتن جای مشخص (کار توی فضای کار اشتراکی)

۵. نداشتن سیستم برای هر فرد ( هر کی لپ تاپشو بیاره. گاها منت میذارن که کمد میدیم بهتون 😁)

۶. منابع انسانی با جیمیل یا خط شخصی ارتباط بگیره

۷. منابع انسانی در تماس اول از کلمه جون (جان) استفاده کنه.

شاید فکر کنید که کار گیر نمیاد. ولی باور کنید کار توی این شرکتها نه آورده مالی داره نه آورده علمی ، رزومه و اعتماد به نفستون هم بهتر نمیکنه هیچ ، م....ه بهش.
توی دوران کاریتون ، تنها کاری که اصلا نباید انجام بدید دروغ گفتنه.

به خاطر ثواب و گناهش نمیگم.

با اولین دروغ ، مهری به پیشونیتون میخوره که تا آخر عمر درگیرش می‌شید. بازار کار خیلی کوچیکه و آدما دروغ یادشون نمیره.

در آینده هر موفقیتی هم کسب کنید ، به جای بهتر شدن بدتر میشه و دروغ گوییتون دوباره بالا میاد.
Forwarded from Books
آیا از کاری که می‌کنید راضی‌اید؟ محیط کار رو نمیگم. خود کار رو میگم.
Final Results
67%
بله
33%
خیر
داستان جدول پرآپدیت رو که پرسیدم با aggrid هندل کردم.

دمو:
https://ag-woad.vercel.app/

۵۰۰۰ آپدیت در ثانیه
ویرچوال تیبل
سورت
کالومن پین / رو پین
درگ و ...

نسخه کامیونتی کاملا کارتون رو راه میندازه
یه حرکت غیر اخلاقی یادتون بدم 😁

هر جایی نت کم آوردید ، وایفای گوشی رو روشن کنید و سعی کنید به هات اسپات‌های اطراف با رمز ۱۲۳۴۵۶۷۸ وصل شید. تقریبا همیشه جواب می‌گیرید.

مسولیت استفاده‌اش با خودتون 😶
تا حالا دیدید دو نفر بحث سیاسی یا عقیدتی کنن ، بعد یکی بتونه نظر اون یکی رو عوض کنه؟ امکان پذیر نیست چون هیچ متری نداره.

پس دوست خوب من ، در خصوص این ۲ مورد سکوت پیشه کن که جز پشیمونی ، ثمره‌ای نداره.
رقصنده با کد
آیا از کاری که می‌کنید راضی‌اید؟ محیط کار رو نمیگم. خود کار رو میگم.
اگر مشت نمونه خروار باشه ، همین الان ۱/۳ جامعه IT ، از کاری که انجام میدن راضی نیستن ، هرچند که شخصا فکر میکنم بیشتر از ۷۰ درصد باشه.

این بده.

چرا نمی‌رید کاری که دوست دارید انجام بدید؟ مگر چند بار قراره عمر کنید؟ چند بار قراره جوون باشید؟
اپل یه جورایی ناخواسته یه حالی به ما معمولیا داد.

دزدا فقط دنبال نارنجین.
و باز هم مثل همیشه

ذوق زده نشید و برای آپدیت ورژن اقدام نکنید.

شما که نمیخوای کانتربیوت کنی، بذار ۱ سال بگذره.

یادش بگیر ولی استفاده‌اش نکن
This media is not supported in your browser
VIEW IN TELEGRAM
داشمون از ماتریکس خارج شده