آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

هماهنگ سازی لاگین بین App و وب سایت

iSheykhi  12 سال پیش  12 سال پیش
+5 0

با سلام

برای اینکه تعیین بشه که چه کاربری در حال حاضر لاگین هست و توی لیست کاربران آنلاین هم در وب سایت و هم در App نمایش داده بشه  چه راهکاری پیشنهاد می کنید؟

چطور می تونم از آنلاین بودن کاربران مطلع بشم؟

آیا فرستادن Security Tocken به برنامه چاره سازه؟ و آیا خطر امنیتی رو برای سرور به دنبال نداره؟

 برای این سوال 7 پاسخ وجود دارد.
پاسخ به سوال 
محمد حسین زاده  12 سال پیش
+5 0

میتونی از CookieStore برای نگهداری کوکی لاگین استفاده کنی.

دقیقا این روش تو مرورگرها استفاده میشه و خطرات امنیتی رو معمولا پیش فرض سرور ها براش در نظر میگیرن.

با هر درخواستت هم این کوکی رو به سرور میفرستی

0 0
می شه توضیح بیشتری بدین؟ من یوزرنیم و پسورد رو می فرستام، اگر سکیوریتی توکن رو هم داشته باشم می تونم با سرور طوری ارتباط برقرار کنتم که کاربر رو آنلاین شناسایی کنه؟ به چه شکل؟ (12 سال پیش)
پاسخ به سوال 
محمد حسین زاده  12 سال پیش
+6 0

با فرض اینکه سمت سرور یه متد با ورب پست برای لاگین کردن داشته باشی  :

 private static void login() throws ClientProtocolException, IOException {
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("UserName", "aaa"));
params.add(new BasicNameValuePair("Password", "bbb"));
params.add(new BasicNameValuePair("RememberMe", "True"));
String url = urlBase + "/Login/Index";
HttpPost httpPost = new HttpPost(url);
HttpEntity entity = new UrlEncodedFormEntity(params, "UTF-8");
httpPost.setEntity(entity);

invoke(httpPost);
}

میتونی با این متد یه درخواست بسازی. با اجرای این درخواست کوکی مد نظر، سمت سرور ساخته میشه و به کلاینت فرستاده میشه.

میشه از کلاینت این کوکی رو دریافت کرد و هر طور که لازمه نگهش داشت.

 CookieStore sCookieStore = ((AbstractHttpClient) httpClient).getCookieStore();
0 0
فقط ببخشید، این throws یعنی چی؟ مثلا Implement برای اینترفیس هست و extends برای مشتق کردن از کلاس، throws؟ (12 سال پیش)
0 0
خیلی ممنون که وقت گذاشتین، نمی دونم چطور تلاش کنم (12 سال پیش)
+1 0
throws در متد بالا یعنی موقع فراخوانی این متد باید این exception ها رو تو try بررسی کنی (12 سال پیش)
0 0
چطور تلاش کنی؟ (12 سال پیش)
0 0
عه، تلافی، اشتباه نوشتم (12 سال پیش)
0 0
آهان، دیگه نیازی نیست از try استفاده بشه؟ خودکار خطا رو لاگ می کنه و کرش نمی ده! مرسی (12 سال پیش)
+1 0
دقیقا برعکس. مجبورت میکنه از try استفاده کنی (12 سال پیش)
0 0
invoke ؟ شناسایی نمی شه (12 سال پیش)
+1 0
invoke مفهوم اجرای درخواست رو داره. متد جاوا نیست (12 سال پیش)
پاسخ به سوال 
محمد حسین زاده  12 سال پیش
+3 0

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

 
private static String invoke(HttpUriRequest request)
throws ClientProtocolException, IOException {

String result = null;

DefaultHttpClient httpClient = new DefaultHttpClient();

// ارسال کوکی به سرور
if (sCookieStore != null) {
httpClient.setCookieStore(sCookieStore);
}

HttpResponse response = httpClient.execute(request);

// نحوه دریافت اطلاعات به سناریوی برنامه خودت بستگی داره
StringBuilder builder = new StringBuilder();

BufferedReader reader = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));

for (String s = reader.readLine(); s != null; s = reader.readLine()) {
builder.append(s);
}

result = builder.toString();

// ذخیره کوکی
sCookieStore = ((AbstractHttpClient) httpClient).getCookieStore();

return result;
}
پاسخ به سوال 
iSheykhi  12 سال پیش
0 0

جایی که وارد کردین " // نحوه دریافت اطلاعات به سناریوی برنامه خودت بستگی داره" منظورتون رو متوجه نمی شم

چه چیزی در اون قسمت دریافت می شه؟

 

0 0
اگه فقط قصد لاگین داری هیچ چیزی. اگه میخوای از خروجی یه متد استفاده کنی که نیاز به لاگین داره، خروجی اون متده بر میگرده. باید بررسی کنی اگه کوکی لاگینت ناله، یه بار لاگین کنی بعدش فقط کوکی رو میفرستی. (12 سال پیش)
0 0
مرسی ممنون (12 سال پیش)
0 0
مهندس، برای اینکه تشخیص بدیم کارب موفق به لاگین شده یا خیر باید چکار کنیم (12 سال پیش)
0 0
1- کوکی نال میشه - 2- متد لاگینت به boolean برگردونه (12 سال پیش)
پاسخ به سوال 
iSheykhi  12 سال پیش
0 0

توی catch از Log استفاده کردم، لاگ نمی اندازه اما توی LogCat این خطاها رو می ده


07-02 12:50:53.424: E/lights(212): write_int failed to open /sys/class/sec/sec_touchkey/brightness


07-02 12:50:54.924: E/lights(212): write_int failed to open /sys/class/sec/sec_touchkey/brightness


07-02 12:50:59.994: E/AlarmManagerService(212): android_server_AlarmManagerService_set to type=0, 1404307019.933000000


07-02 12:50:59.994: E/AlarmManagerService(212): android_server_AlarmManagerService_set to type=3, 15133.792000000


07-02 12:51:00.096: E/AlarmManagerService(212): android_server_AlarmManagerService_set to type=3, 14767.998000000


07-02 12:51:00.853: E/AlarmManagerService(212): android_server_AlarmManagerService_set to type=0, 1404305520.000000000


07-02 12:51:21.197: E/Watchdog(212): !@Sync 400


0 0
این لاگ مربوط به این کده؟ (12 سال پیش)
0 0
وقتی لاگ کت رو پاک می کنم و تاچ می کنم این خطووط لاگ کت رو پر می کنه (12 سال پیش)
0 0
مشکل مربوط به کدیه که تو override متد تاچ هست . ربط به کد بالا نداره (12 سال پیش)
پاسخ به سوال 
ahmad_r  12 سال پیش
0 0

چندتا سوال:

1_ آیا بعد از لاگین اگر کاربر cookie های مرورگرش رو پاک بکنه دوباره باید لاگین کنه؟ و اینکه آیا با خروج از برنامه کوکی ها پاک میشن؟

( من میخوام کاربر یکبار لاگین کنه و تا لاگ اوت نکرده نیازی به ورود دوباره نداشته باشه  حتی با خروج  از برنامه)

2_ کاربرد قسمت account  در خود اندوید چیه ؟ آیا نمیشه به اون وصل کرد؟

3_ سایتم دراپاله . فرقی که توی سرور نداره ؟

پاسخ به سوال 
محمد حسین زاده  12 سال پیش
+2 0

بعد از لاگین کوکی رو تو هر جایی که خودت بخوای ذخیره میکنی (البته تو روش بالا). میتونی تو دیتابیس یا فایل باینری نگهش داری. پس کلا ربطی به کوکی های مرورگر نداره.

برای همین لازمه که کوکی ها رو در مواقع نیاز با وب ویو سینک کنی

برای مورد دوم هم میشه گفت 100% بی ربطن

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

0 0
نحوه ذخیره سازی فایل Cookie مثل ذخیره عکسه یا فرق داره؟ (12 سال پیش)
0 0
کوکی مجموعه ای از نام/مقدار هاست. هر طور که مایلی ذخیرش کن. بعد باید مجدد به CookieStore تبدیلش کنی (12 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .