بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

لاگین نشدن به سرور drupal با کاربر اضافه شده در اندروید

مدیریت گفتگو
ahmad_r 12 سال پیش
آخرین تغییر: 12 سال پیش

من از طریق برنامه اندروید یک کاربر به سرور drupal ام اضافه می کنم ولی وقتی با همان کاربر میخواهم وارد شوم (به کمک cookie store) خطا میدهد (wrong username and password) و تا موقعی که در سرور پسورد کاربر را تغییر ندهم وارد نمیشود.

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

کسی میتونه کمکم کنه

    // Log in //

JSONObject json = new JSONObject();
json.put("username", edtUsername.getText().toString().trim());
json.put("password", edtPassword.getText().toString().trim());

StringEntity se = new StringEntity(json.toString());
se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
httpPost.setEntity(se);

HttpResponse response = httpClient.execute(httpPost);
String jsonResponse = EntityUtils.toString(response.getEntity());

JSONObject jsonObj = new JSONObject(jsonResponse);
session_name = jsonObj.getString("session_name");
session_id = jsonObj.getString("sessid");
token = jsonObj.getString("token");

if (session_name != null) {

// login
}

///////////////////////////////////////


// Sign Up //

try{

JSONObject json = new JSONObject();
json.put("name", edtUsername.getText().toString().trim());
json.put("pass", edtPassword.getText().toString().trim());
json.put("mail", mail.getText().toString().trim());
//json.put("phone", phone.getText().toString().trim());

StringEntity se = new StringEntity(json.toString());
se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
httpPost.setEntity(se);
httpResponse = httpClient.execute(httpPost);
final String strResponse = EntityUtils.toString(httpResponse.getEntity());
final JSONObject jsonObj = new JSONObject(strResponse);
final String strUid = jsonObj.getString("uid");

// signed up
}
catch (Exception e) {
// sign up error
}

 

نظرات

پسورد رو clear ارسال میکنی - سمت سرور اگه مستقیما تو دیتابیس ثبت میکنی مشکل میتونه این باشه که پیش فرض پسورد با الگوریتمی هش میشه
ahmad_r 12 سال پیش
منظورتون از clear چیه؟ توی هش شدنش که شک ندارم. وارد phpmyadmin شدم کد هش شده رو هم دیدم
یعنی همون Hash نشده - پسوردتو باید با همون دستوری که دروپال داره هش میکنه هش کنی
مجتبی یگانه 12 سال پیش
آقای حسین زاده خیلی دیباگر هستید :) - دمتون گرم
مجتبی یگانه 12 سال پیش
واقعا اینکه به این سرعت فکر آدم به اونجا برسه توانایی بزرگیه :)
ahmad_r 12 سال پیش
منطقی اینکه قبل از ذخیره پسورد اون رو هش کنه و قبل از چک کردن رمز ارسال شده هم، آن را هش کند و با هش ذخیره شده چک کند الان کدام قسمت انجام نمیشود که این مشکل به وجود می آید. (چیزی که من در دیتا بیس دیدم هش شده بود)
احتمالا sign up متفاوتی داره - 2 تا کاربر رو از طریق برنامه و وب سایت با پسورد یکسان ثبت کن ببین نتیجه یکسان میشه؟
ahmad_r 12 سال پیش
اتفاقا این کار را کرده بودم. نه یکسان نیست البته بعد از اینکه از طریق سایت رمز را هم عوض میکنم و مشکل حل میشود باز هم رمزهای هش شده یکسان نیست. (فکر میکنم تابع هش از نام کاربری و ایمیل هم استفاده میکند)
چیزی به نام سالت لینک هم هست. در مورد نحوه هش شدن پسورد دروپال باید بیشتر بدونی

پاسخ‌ها 1

ahmad_r 12 سال پیش

آقای حسین زاده واقعا ممنون

باید یه پچ به دراپال اضافه می شد

لینک

نظرات


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