محمد رضا
3 سال پیش توسط محمد رضا مطرح شد
9 پاسخ

متمایز کردن کانال های لاراول از یکدیگر در پروژه های یکسان

سلام خسته نباشید
من در پروژه ی خودم از وب سوکت و سرویسی مشابه پوشر استفاده میکنم و برای ارسال پیام های همه پخشی توی پروژه ی خودم به صورت لحظه ای و استفاده ی اون ها از کانال های لاراول واقع در دایرکتوری روت استفاده میکنم.
موضوع اینه که چون سرور این ارتباط برنامه ی خودم نیست و یه سرور خارج از پروژم هست تمامیه پروژه هام میخوام به همون سرور متصل باشن
تا اینجا هم موردی نداریم
اما مشکل زمانی پیش میاد ک از یک پروژه مثلا چند جا استفاده کنی و اجرا کنیش و همشون نام کانال هاشون یکی میشه چون پروژه یک سان بوده و همشون پیام های هم رو میخونن
میدونم که سیستم اعتبار سنجی داره این کانال ها توی لاراول (ACL) اما دقیقا نمیدونم چه چیزی رو پیاده کنم

خودم در تلاش بودم نامی برای هر پروژه در ENV قرار بدم و از طریق اون بیام و نام کانال ها رو uniqe کنم و داخل همه جای پروژه اون نام env رو متصل کنم به اسم کانال تا مشکل حل شه
اما توی کلاس های لایو وایر وقتی میخوام env رو وسط متن بزارم ارور میده و اجازه ی این کار رو بهم نمیده انگار در دسترس نیست اونجا

اگر ایده ای دارید ممنون میشم راهنمای کنید بنده رو


ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

چیزی که من می‌فهمم از اساس نباید پروژه های جداگانه با هم ارتباطی این چنین داشته باشند و میتونه یک مسئله خیلی مهم باشه. روش معمولش این هست که برای هر پروژه یک API_KEY یا TOKEN یا چیزی تو این مایه ها ایجاد میشه تا ابزاری برای احراز هویتشون باشه و کاملا از هم مستقل عمل کنند و از نظر امنیتی هم مشکلی بوجودنیاد.

اگر جداسازیتون تو این لایه انجام بشه به نظرم هم منطقی تره هم امن تر و هم اینکه دیگه دغدغه‌ای برای کانال‌هایی با نام مشترک نخواهید داشت.


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

سلام مجدد
دوستان ممنون میشم راهنمایی کنید بنده رو

@mhyeganeh
@Alimotreb
@ali.bayat
@hesammousavi
@juza66
@mohaligateway


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

سلام.
بنده متاسفانه هم مسئله تون رو درست متوجه نشدم و هم اینکه تجربه زیادی در این موضوع ندارم...
امیدوارم سایر دوستان بتونند کمک کنند.

موفق باشید.


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش آپدیت شد
0

@mhyeganeh
سلام و سپاس
کانال ارتباطی ای که پیام ها رو ارسال میکنه یکسان هست
چطور کانال رو برای یک پروژه با استفاده چند گانه مدیریت کنم
یعنی به طریقی برای هر استقرار پروژه در سرور های مختلف برای اشخاص مختلف بتونم پیام هاشون رو توی اون کانال محدود ب خودشون کنم

ساده ترین حالتش اینه که نام کانال عوض بشه
اما نمیتونم این نام کانال رو به عنوان مثال از توی env دریافت کنم
منظور کلی سطح دسترسی این پیام ها و مدیریتشون که کیا ببینن و استفاده کنن.


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

چیزی که من می‌فهمم از اساس نباید پروژه های جداگانه با هم ارتباطی این چنین داشته باشند و میتونه یک مسئله خیلی مهم باشه. روش معمولش این هست که برای هر پروژه یک API_KEY یا TOKEN یا چیزی تو این مایه ها ایجاد میشه تا ابزاری برای احراز هویتشون باشه و کاملا از هم مستقل عمل کنند و از نظر امنیتی هم مشکلی بوجودنیاد.

اگر جداسازیتون تو این لایه انجام بشه به نظرم هم منطقی تره هم امن تر و هم اینکه دیگه دغدغه‌ای برای کانال‌هایی با نام مشترک نخواهید داشت.


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@mhyeganeh
چطور app کی پروژه رو عوض کنم؟
من مثلا پروژه رو که کپی میکنم و اسم پوشه رو عوض میکنم با phpstorm که باز میکنم پوشه رو کلا فک میکنه همون پروژه قبلیه و ادرس ترمینالشم همونه و حتی رو اسم پوشه توی کروشه اسم پروژه اصلی رو مینویسه
یعنی دستی هرچی بنویسم برا app_key اشکال نداره؟ یا باید generate بشه؟

در رابطه با پیام سرور ارسال کننده ی این پیام ها pusher یکسان هست و این پروژه ها از طریق اون پیام همه پخشی خودشون رو ارسال میکنن دیگ مهم نیست چه برنامه ای هست هرکی یوزر پس اون سرور رو داشته باشه با داشتن نام اون کانال ارتباطی پیام هاش رو میخونه
البته میگم باز هم ACL داره توی کانال ها که اشنایی دقیقی ندارم من


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

اصلا موضوع سر APP_KEY در فایل .env نیست. اون که داستانش جداست و مربوط میشه به بحث encryption لاراول. چیزی که بالا گفتم API_KEY بود و منظورم این هست که کلا به یک نحوی پروژه ها باید از هم قابل تفکیک باشند و هر درخواستی که میاد با استفاده از همین KEY باید احراز هویت بشوند و اینجوری استقلالشون هم حفظ میشه ودیگه دغدغه هم اسم بودن کانال هاتون رو ندارید.

مثلا شما اگر از PUSHER هم استفاده کنید نباید همه پروژه هاتون رو با حساب یک Channel هندل کنید. بلکه برای هر پروژه ای باید یک Channel جداگانه بسازید و طبعا هر کدومشون اطلاعات جداگانه ای (app_id , key, secret) دارند و عملا مستقل از هم عمل می‌کنند.

اینکه تو phpstorm هم چنین مواردی پیش میاد طبیعی نیست و یک جای کار احساس می‌کنم ایراد داره. فقط متاسفانه باز هم درست متوجه منظورتون نمیشم. حالا ان شالله سایر دوستان بهتر می‌تونند راهنمایی کنند.


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@mhyeganeh
سپاس فراوان از راهنماییتون دوست عزیز
ب نظر میاد برای هر پروژه سرور پوشرش رو باید جدا کرد پس


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 3 سال پیش آپدیت شد
0

سلام محمدرضا جان
نمیدونم ایا این روی سرور شما هستش یا روی هاست!

اینجا باید یه حرکتی انجام بدی وقتی کاربر وارد سایت میشه و میخواد یک اکانت بسازه ، شما این براساس اطلاعات کاربر توی بک اند از پروژه تون یک کپی ایجاد میکنی و اون اطلاعات کاربر و appkey و سایر این اطلاعات بصورت اتومات برای کاربر ساخته بشن.

اگر سرور هست خب برای خودت میتونی وب سوکت استفاده کنی و توی سیستم سرور این کارها رو با یک برنامه جدا هندل کنی. اگر نه سرور نیستش و یک هاست هست و شما براساس userid اطلاعات مشترکین رو جدا میکنی پس بعد باید یکجوری این کانفیگ رو بنویسی مثلا توی یک فایل دیگه و توی ارسال و دریافت قبلش این فایل کانفیگ رو چک کنی و براساس اون تصمیم بگیری. اینکه یک کپی از پروژه بگیری توی هاست و فایل Env بسازی برای کاربر و اینجور کارها و بصورت دستی واقعا شاید درست نباشه.


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
1

@juza66
سلام و سپاس سید
بله درست میگید
سعی میکنم اعتبار سنجی ای پیاده کنم
از سرور لیارا و سیستم وب سوکت پوشر پیشنهادی خودشون استفاده میکنم داداش


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام