Syntax | سینتکس – Telegram
JWT

اگه شما توسعه دهنده فرانت اند هستید. می تونید سیستم احراز هویت JWT رو توی این پروژه ی واقعی که آنلاینش کردم تست کنید(فعلا آفلاینه)

http://188.121.113.3/api/schema/redoc/

همچنین یک سری قابلیت های دیگه هم در ادامه بهش اضافه می کنم.

#JWT

@khat_academy
7
بررسی استاندارد احراز هویت JWT توی پروژه qanda.

لینک گیت هاب:
https://github.com/alireza-fa/question-and-answer

Model
اولین کاری که میکنیم اینه یک مدل به اسم UserLogin مینویسیم.
اینکه چه فیلد هایی رو میخواید قرار بدید انتخاب خودتونه اما فیلد های مورد نیاز ما این موارد هستش:
user_id
refresh token
expired_at
device
ip_address

Token
یکی از کارهای دیگه که کردیم این هستش که یک سری اطلاعات بیشتری رو توی payload توکن هامون قرار دادیم که این فیلد ها هستش:
username
email
first_name
last_name
device_name
ip_address

دلیل اینکه اینکارو انجام دادیم چیه؟
با اضافه کردن این اطلاعات پرکاربرد دیگه نیاز نیست هر بار از سمت دیتابیس بگیریم.

Encrypt / Decrypt
میخوایم اطلاعاتی که توی payload توکن قرار دادیم قابل دیدن نباشه. پس میایم توکن رو encrypt شده سمت کلاینت ارسال می کنیم و هر وقت که نیاز بود سمت بک اند decrypt میکنیم و عملیات اعتبار سنجی و هرچیزی نیاز هستش رو انجام می دیم.

چجوری توکن رو امن تر کردیم؟
تو مدل UserLogin اطلاعات کاربر موقعی که لاگین می کنه ذخیره کردیم. مثل نام دستگاه و آدرس آی پی. همچنین توی توکن هم اضافه کردیم.
کاری که می کنیم اینه چک می کنیم شخصی که میخواد اکسس توکن جدید بگیره ip address و device name همونه یا نه. اگه اون نبود توکن رو نامعتبر می شماریم.

همچنین برای امنیت بیشتر تو هر درخواست اکسس توکن رو هم می تونیم بررسی کنیم که مشخصاتش با شخصی که داره درخواست میده یکی هستش یا نه

برای بررسی بیشتر حتما به ریپازیتوری گیت هاب سر بزنید. برای حمایت ستاره بدید ممنون میشم.

#JWT

@khat_academy
👍13
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی بعد از سه ساعت کد زدن هنوزم ارور برطرف نشده و دو شب شده تصمیم میگیری که بخوابی😂

@khat_academy
🤣11😱1
لینک اشتراک گذاری تو شبکه های اجتماعی مختلف.
آکولاد اول لینک اون صفحه از وب سایتتون که میخواید به اشتراک بذارید رو میدید. آکولاد دوم توضیح درباره اون لینکه که بعضی از شبکه های اجتماعی میگیرنش


FACEBOOK:

https://www.facebook.com/sharer/sharer.php?u={}


TWITTER:
https://twitter.com/intent/tweet?url={}&text={}


LINKEDIN:

https://www.linkedin.com/shareArticle?mini=true&url={}&noscript={}


PINTEREST:
https://www.pinterest.com/pin/find/?url={}&denoscription={}


TUMBLE:
http://www.tumblr.com/share?v=3&u={}&t={}


TELEGRAM:

https://telegram.me/share/url?url={}&text={}


GOOGLE_PLUS:
https://plus.google.com/share?url={}


WHATSAPP:

whatsapp://send?text={}


@khat_academy
4🔥3
از کی تا حالا شرکتای آمریکایی از طریق جابینجا نیرو جذب می کنن!

یه شرکت آمریکایی این ایملو بهم فرستاده. خودمم تعجب کردم

@khat_academy
😱9😁2
تو تیممون به یکی نیاز داریم بتونه ادیت ویدیو انجام بده.
در حد حرفه ای نه، برای ریلز های اینستا و اینجور محتوا ها

اگه کسی دوست داره جز تیممون شه بهم پی ام بده
@alireza_fai
🎉6👍3
تغییر name server توی لینوکس

تو اکثر سیستم عامل هایی که بیسش لینوکسه،‌داخل فایل
/etc/resolv.conf
سرور های دی ان اس رو مشخص می کنیم.
حداقل باید یک نیم سرور توی فایل وجود داشته باشه که بصورت پیشفرض مساوی با
nameserver 127.0.0.53
هستش.
برای تغییر کافیه ترمینالتونو باز کنید و این دستورو بزنید:
sudo nano /etc/resolv.conf
بعدش دنبال nameserver بگردید و بجای 127.0.0.53 نیم سروری که میخواید جایگزین کنیدو وارد کنید.

نکته:
توی nano برای سیو کردن crt + o رو بزنید و بعدش enter. برای خروج ctr + x رو بزنید.

چه مواقع استفاده می کنیم؟
با توجه به اینکه تو ایران زندگی می کنیم خیلی وقت ها !
مثلا اگه بخواید از داکر استفاده کنید نیازه که دی ان اس خودتونو تغییر بدید.

@khat_academy
👍8
قراره یکی از مقالات خوب در خصوص server hardening در لینوکس رو بصورت ترجمه شده با توضیحات کامل تر توی یه کانال تخصصی قرارش بدم.
اگه برای شما هم مسائل امنیتی سرور جذابه و باهاش سر و کار دارید اینجا هم قرارش میدم(واقعا زیاده هر نکته تقریبا اندازه یه مقالست)
Anonymous Poll
83%
قرارش بدم
17%
قرارش ندم
گوگلو قانونی دور بزن !

تو این مقاله درباره سئو‌ کلاه خاکستری توضیح دادیم و چند روش برای پیاده سازیش مثال زدیم که به شما این امکانو میده تو مدت زمان کم سئو وب سایتتون تقویت بشه

@khat_academy
🔥6👍3
چهل نکته درباره Linux Server Hardening (قسمت اول)

تو قسمت اول نکته یک تا ده رو بهتون گفتم.
امیدوارم براتون مفید باشه 👌

#hardening

@khat_academy
👍8🔥3
اگه اول راه هستید و نمیدونید کدوم فیلد مناسب شماست.
اگه میخواید لینکدین حرفه ای داشته باشید و رزومه خوبی برای خودتون درست کنید
این کانال همه این موارد رو پوشش میده

راستی توجه اصلی کانال روی مباحث هوش مصنوعی هستش

پس اگه علاقه مند به این موضوعات هستید حتما دنبال کنید

آدرس کانال:
https://news.1rj.ru/str/MobiFacts

#معرفی_کانال

@khat_academy
👍7
🔥13
« از اون بالا کفتر میایه »

شهاب تیام که با آهنگ «از اون بالا کفتر میایه» شناخته میشه مهندس سخت افزار هستش و پونزده سالی توی اینتل مشغول به فعالیت بوده و الانم تو یه شرکت جدید شروع به فعالیت کرده :)

بله. بعضی وقتا زندگی مسیری رو برات میچینه که فکرشم نمیکردی

(باورت نمیشه کامنتو نگاه کن)

https://www.linkedin.com/in/shahab-tiam-a873b14/


@khat_academy
😱7🤣3👍2
AminAli Mazarian (copy).noscript
324 KB
قالب رزومه ای که استفاده کردیم.
با برنامه inkscape بازش کنید و رزومه خودتونو بسازید.

@khat_academy
🔥6
تفاوت سایز Json با Protobuf
Json: 214
Protobuf: 53
حدودا چهار برابر بیشتره. (البته تو این کیس و تو این حالت)

@khat_academy
👍8
تو این قسمت از khat weekly، مهمون ما امین علی مزاریان هست که توسعه دهنده بک انده (Python Back-end developer)

اما جز اینکه تو برنامه نویسی کارش خوبه،‌توی مهارت های نرم و رزومه نویسی هم تجربیات خوبی داره و قراره تو میت از ساخت یک رزومه مناسب تا مصاحبه صحبت کنیم 💥

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

همچنین هر سوالی دارید، تو کامنت بپرسید تا توی پادکست دربارش صحبت کنیم

تاریخ میت:
چهارشنبه ۱۹ مهر ساعت ۱۹:۰۰

LinkedIn
Github

#meet #weekly

@khat_academy
👍5🔥2🥰1👏1😁1
collections.namedtuple

در پایتون، namedtuple یک کلاس فراهم می‌کند که به شما امکان ساخت ساده‌تر و مدیریت آسان‌تر داده‌های ساختارمند را می‌دهد. namedtuple به شما اجازه می‌دهد یک کلاس ساده‌تر را با فیلدها و مقادیرش ایجاد کنید و به طور خودکار ویژگی‌هایی مانند نامگذاری و استخراج مقادیر از آنها را برای شما مدیریت کند.

شما می‌توانید یک namedtuple با استفاده از تابع namedtuple از ماژول collections ایجاد کنید. این تابع به شما اسم کلاس مورد نظرتان را و همچنین نام فیلدها را به عنوان ورودی می‌گیرد. به عنوان نتیجه، یک کلاس ایجاد می‌شود که دارای ویژگی‌هایی مانند نامگذاری فیلدها و روش‌های استخراج مقادیر است.

در زیر یک مثال ساده استفاده از namedtuple را مشاهده می‌کنید:

from collections import namedtuple

# تعریف یک `namedtuple` برای نمایش اطلاعات یک شخص
Person = namedtuple('Person', ['name', 'age', 'gender'])

# ایجاد یک شخص جدید
person1 = Person(name='John', age=30, gender='Male')

# استخراج مقادیر
print(person1.name) # خروجی: John
print(person1.age) # خروجی: 30
print(person1.gender) # خروجی: Male

همانطور که مشاهده می‌کنید، شما می‌توانید مقادیر مختلف را با نام فیلدها به عنوان آرگومان‌ها به کلاس namedtuple ارسال کنید و سپس می‌توانید با استفاده از نام فیلدها آنها را استخراج کنید.

از مزایای استفاده از namedtuple می‌توان به سادگی کد، قابلیت خوانا بودن بیشتر کد اشاره کرد. همچنین، `namedtuple`‌ها در مواردی که نیاز به داده‌های ساختارمند و غیرقابل تغییر دارید، مفید هستند.

#python

@khat_academy
👍8