PDA

View Full Version : لاگین ماندن در سایتهای دیگر با دیتابیس سایت مرجع شبیه گوگل



leaping
دوشنبه 05 خرداد 1393, 19:44 عصر
سلام دوستان
چطوری میشه کاری کرد مثل گوگل تو هر کدوم از وب سایتهای تابعه هر وقت وارد بشی اگر از قبل لاگین بوده باشی بازهم لاگین بمونی
مثلا وقتی شما وارد Gmail میشید وقتی بخواید وارد سایت Youtube بشید دیگه لازم نیست که دوباره لاگین بشید.
این عمل چطوری انجام میشه؟
ممنون

abolfazl-z
دوشنبه 05 خرداد 1393, 21:01 عصر
سلام دوستان
چطوری میشه کاری کرد مثل گوگل تو هر کدوم از وب سایتهای تابعه هر وقت وارد بشی اگر از قبل لاگین بوده باشی بازهم لاگین بمونی
مثلا وقتی شما وارد Gmail میشید وقتی بخواید وارد سایت Youtube بشید دیگه لازم نیست که دوباره لاگین بشید.
این عمل چطوری انجام میشه؟
ممنون

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

leaping
دوشنبه 05 خرداد 1393, 21:23 عصر
یعنی شما وقتی در گوگل login می شوید همان موقع هم در یوتیوب login میشوید ؟ یعنی بدون اینکه گوگل شما را با یک لینکی به یوتیوب بفرستد ؟
بله همینطوره

abolfazl-z
دوشنبه 05 خرداد 1393, 21:30 عصر
بله همینطوره

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

صد در صد شما را به اونجا میفرسته ولی یا بصورت اجاکس یا بصورت iframe .

مثلا شما در سایت گوگل وارد شدید و به محض اینکه وارد می شوید یک درخواست همراه با یک توکن به یوتیوب با سیستم خودتون از طریق جاوا اسکریپت با ajax می فرسته که در نتیجه با ارسال این درخواست یک کوکی برای شما ارسال میشه.
توجه داشته باشید که قبل از این کار گوگل یک ارتباط با یوتیوب برقرار میکنه و میگه من یک نفر رو می خواهم با این مشخصات بفرستم به تو . یوتیوب هم میگه باشه این کد رو بگیر به عنوان کلید و بهش بده که بیاد در رو باز کنه تا من هم بهش کوکی رو بدم :)

leaping
دوشنبه 05 خرداد 1393, 22:00 عصر
این مثال ذیل ساخته ذهن بنده در چند دقیقه پیش هست و این هم بگم که من تا به حال چنین کاری نکردم.

صد در صد شما را به اونجا میفرسته ولی یا بصورت اجاکس یا بصورت iframe .

مثلا شما در سایت گوگل وارد شدید و به محض اینکه وارد می شوید یک درخواست همراه با یک توکن به یوتیوب با سیستم خودتون از طریق جاوا اسکریپت با ajax می فرسته که در نتیجه با ارسال این درخواست یک کوکی برای شما ارسال میشه.
توجه داشته باشید که قبل از این کار گوگل یک ارتباط با یوتیوب برقرار میکنه و میگه من یک نفر رو می خواهم با این مشخصات بفرستم به تو . یوتیوب هم میگه باشه این کد رو بگیر به عنوان کلید و بهش بده که بیاد در رو باز کنه تا من هم بهش کوکی رو بدم :)
به این مسئله کاملا دقت نکردم
اما به هر ترتیب من نمیخوام پیچیدش بکنم.حتی اگه از طریق لینک هم باشه در حال حاضر برای من کفایت میکنه
من یک سرور دارم و بر روی اون دوتا دامین ست هست
از طریق تعریف سشن ها به هیچ ترتیبی نتونستم این موضوع رو انجام بدم یبار کار میکرد یبار کار نمیکرد, در ثانی قصد نداشتم سشن رو از طریق لینک انتقال بدم چون هم مشکل امنیتی داره و هم یک سری مشکلات دیگه
خب الان چی پیشنهاد میکنید؟

numberone1
دوشنبه 05 خرداد 1393, 22:15 عصر
یوتیوب زیر مجموعه خود گوگل هست و باهاش مثل ساب دامین رفتار میکنه. اطلاعات جفتشون روی سرور های گوگل هست
ولی در کل فیسبوک توئیتر گوگل یوتیوب و ... api دارن که میتونید مستنداتش و از تو سایت های خودشون پیدا کنید.
شما نیاز نیست کار خیلی خاصی انجام بدید فقط طبق مستندات به api متصل بشید , مشخصات اهراز هویت و بهتون میده که چه شخصی وارد سایت شده با اون مشخصات شما هم میتونید لاگین و انجام بدید.

leaping
دوشنبه 05 خرداد 1393, 22:16 عصر
یوتیوب زیر مجموعه خود گوگل هست و باهاش مثل ساب دامین رفتار میکنه. اطلاعات جفتشون روی سرور های گوگل هست
ولی در کل فیسبوک توئیتر گوگل یوتیوب و ... api دارن که میتونید مستنداتش و از تو سایت های خودشون پیدا کنید.
شما نیاز نیست کار خیلی خاصی انجام بدید فقط طبق مستندات به api متصل بشید , مشخصات اهراز هویت و بهتون میده که چه شخصی وارد سایت شده با اون مشخصات شما هم میتونید لاگین و انجام بدید.
میشه یکم واضح تر توضیح بدین در مورد این api ها؟

numberone1
دوشنبه 05 خرداد 1393, 22:21 عصر
میشه یکم واضح تر توضیح بدین در مورد این api ها؟

در مورد کدوم قسمتش نیاز دارید که توضیح بدم؟
توی فوتر فیس بوک یک لینک هست developer یا api که میتونید مستندات و بخونید
تو گوگل هم سرچ کنید حتما مثال و سورس های خیلی زیادی هست.

leaping
دوشنبه 05 خرداد 1393, 22:27 عصر
نه اصلا میخوام یه چیزی در مورد روند کاریش بدونم که به چه ترتیب هست
آیا نیاز هست اکستنشن های اضافی نصب بشه؟

numberone1
دوشنبه 05 خرداد 1393, 23:02 عصر
نه نیاز به هیچ اکستنشنی نداره
روندش به این صورت هست که شما یک درخواست به api ارسال میکنید جواب بازگشتی رو میخونید و نمایش میدید

leaping
دوشنبه 05 خرداد 1393, 23:23 عصر
نه نیاز به هیچ اکستنشنی نداره
روندش به این صورت هست که شما یک درخواست به api ارسال میکنید جواب بازگشتی رو میخونید و نمایش میدید
بازهم منظورتون رو از api نفهمیدم

numberone1
دوشنبه 05 خرداد 1393, 23:28 عصر
با curl یا post یا get یک درخواست به یک url بخصوص ارسال میکنید با یک فرمت مشخص که سایت سرویس دهنده به شما اعلام میکنه
یک جواب در بازگشت برای شما ارسال میشه. میتونه json یا xml یا array باشه

leaping
دوشنبه 05 خرداد 1393, 23:47 عصر
این وسط این قضیه چه ربطی به لاگین بودن در سایت دیگه داره؟
حالا به این کار ندارم
اما در حال حاضر با وصفی که در مورد دامین و سرور گفتم این آسون ترین راهی هست که شما بلدین؟

rezakho
سه شنبه 06 خرداد 1393, 00:13 صبح
باید کوکی که برای سشن ساخته میشه رو برای دامنه های دیگه هم معتبر کنید
مثلا یعنی کوکی ای که حاوی نام سشن هست، برای دامنه های دیگه هم ثبت و ارسال میشه، در اون دامنه ها سشن بررسی شده و احراز هویت انجام میشه

leaping
سه شنبه 06 خرداد 1393, 09:49 صبح
باید کوکی که برای سشن ساخته میشه رو برای دامنه های دیگه هم معتبر کنید
مثلا یعنی کوکی ای که حاوی نام سشن هست، برای دامنه های دیگه هم ثبت و ارسال میشه، در اون دامنه ها سشن بررسی شده و احراز هویت انجام میشه
چطوری؟
میشه یه روششو بگید؟

rezakho
سه شنبه 06 خرداد 1393, 11:06 صبح
روش های مختلفی وجود داره

از اونجا که هر کوکی فقط میتونه متعلق به یک دامنه باشه،

1- شما میتونی هنگام لاگین، کوکی سشن رو برای دامنه های دیگه هم بسازی، اینجوری کاربر در همه دامنه ها معتبر هست، به این روش third-party cookie میگن

2- میشه کوکی رو برای همه زیر دامنه های یک دامنه معتبر کرد، این روش موقعی خوبه که همه سایت هاتون تحت یک دامنه و زیر دامنه های مختلف هستند

numberone1
سه شنبه 06 خرداد 1393, 11:17 صبح
این وسط این قضیه چه ربطی به لاگین بودن در سایت دیگه داره؟
حالا به این کار ندارم
اما در حال حاضر با وصفی که در مورد دامین و سرور گفتم این آسون ترین راهی هست که شما بلدین؟

ربطش این بود که لاگین هم قسمتی از api ارائه شده میتونه باشه دیگه
چیزی که من به ذهنم میرسه اینه که سشن ها رو در دیتابیس بریزید و اطلاعات همه سایت ها رو از یک دیتابیس بخونید

leaping
سه شنبه 06 خرداد 1393, 11:52 صبح
ربطش این بود که لاگین هم قسمتی از api ارائه شده میتونه باشه دیگه
چیزی که من به ذهنم میرسه اینه که سشن ها رو در دیتابیس بریزید و اطلاعات همه سایت ها رو از یک دیتابیس بخونید
در حال حاضر هم همه دامنه ها و زیر دامنه های من دارن از یک مسیر سشن ها رو میخونن اما سشن یک دامنه برای دامنه دیگه معتبر نیست
حتی زیر دامنه

Veteran
سه شنبه 06 خرداد 1393, 11:57 صبح
اینقدر موضوع رو پیچیده نکنید
اطلاعات کاربری رو در سایت اول بگیرید و اعتبار سنجی کنید و بعد با سی یو ار ال همون اطلاعات رو به سایت دوم بفرستید حالا توی سایت دوم سشن و کوکی ایجاد کنید

rezakho
سه شنبه 06 خرداد 1393, 12:00 عصر
عرض کردم باید معتبرش کنید، نه خودش معتبر میشه!
مثلا کد زیر یک کوکی را برای همه زیر دامنه های example.com معتبر میکند


setcookie('name', $value, time()+$duration, '/', '.example.com')

leaping
سه شنبه 06 خرداد 1393, 12:16 عصر
عرض کردم باید معتبرش کنید، نه خودش معتبر میشه!
مثلا کد زیر یک کوکی را برای همه زیر دامنه های example.com معتبر میکند


setcookie('name', $value, time()+$duration, '/', '.example.com')



session_set_cookie_params(0, '/', '.example.com');

پس این کد هم باید همه سشن ها رو معتبر بکنه درسته؟