yet another blog about computer, technology, programming, and internet

Monday, May 02, 2011

Using ClientLogin to do Authentication for App Engine Application

Monday, May 02, 2011 Posted by Ismail Habib , 37 comments
General information about ClientLogin: http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html

Discussion on Google Groups (including the original solution posted by geoffd123):
http://groups.google.com/group/google-appengine-java/browse_thread/thread/c96d4fff73117e1d

My solution uses Apache Http library instead of HttpUnit.
public static String loginToGoogle(String userid, String password,
   String appUrl) throws Exception {
  HttpClient client = new DefaultHttpClient();
  HttpPost post = new HttpPost(
    "https://www.google.com/accounts/ClientLogin");
  
  MultipartEntity reqEntity = new MultipartEntity();
  reqEntity.addPart("accountType", new StringBody("HOSTED_OR_GOOGLE",
    "text/plain", Charset.forName("UTF-8")));
  reqEntity.addPart("Email", new StringBody(userid));
  reqEntity.addPart("Passwd", new StringBody(password));
  reqEntity.addPart("service", new StringBody("ah"));
  reqEntity.addPart("source", new StringBody(
    "YourCompany-YourApp-YourVersion"));
  post.setEntity(reqEntity);
  HttpResponse response = client.execute(post);
  if (response.getStatusLine().getStatusCode() == 200) {
   InputStream input = response.getEntity().getContent();
   String result = IOUtils.toString(input);
   String authToken = getAuthToken(result);
   post = new HttpPost(appUrl + "/_ah/login?auth=" + authToken);
   response = client.execute(post);
   Header[] cookies = response.getHeaders("SET-COOKIE");
   for (Header cookie : cookies) {
    if (cookie.getValue().startsWith("ACSID=")) {
     return cookie.getValue();
    }
   }
   throw new Exception("ACSID cookie cannot be found");
  } else
   throw new Exception("Error obtaining ACSID");
 }
A simple example on how to use it:

String authCookie = logonHelper.loginToGoogle("email@gmail.com",
   "password","http://yourapp.appspot.com");  
DefaultHttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet("http://yourapp.appspot.com/service");
get.setHeader("Cookie", authCookie);
HttpResponse response = client.execute(get);
response.getEntity().writeTo(System.out);

37 comments:

  1. thanks codenya bos, salam kenal

    ReplyDelete
  2. Hi,
    this code is very helpful for me.. now i can easily do authentication.. thanks for sharing this information

    ReplyDelete
  3. helpful blog, thanks for sharing.

    Michael

    ReplyDelete
  4. Thanks very much. I referenced this in http://stackoverflow.com/questions/9078003/accessing-oauth-protected-resource-on-google-app-engine/9405067#9405067

    ReplyDelete
    Replies
    1. glad that you found it useful!

      Delete
  5. Oh guys you really have given the ever best code that’s really quite useful for me.Computer repair london

    ReplyDelete
  6. Great blog. All posts have something to learn. Your work is very good and i appreciate you and hopping for some more informative posts.

    ReplyDelete
  7. الان شركة كشف تسربات المياه بالرياض ,كشف تسربات المياه الحل موجود لدينا لا عليك من مشاكل التسربات نهائيا اتصل بنا شركة كشف تسربات المياه جنوب الرياض نقوم بأعمال فحص و كشف تسريب المياه بأفضل أجهزة عالمية بالرياض للبحث على المشاكل في التسربات المياه, نحن شركه كشف تسرب المياه نقوم بالكشف الكامل على منزلك ونقوم بالكشف على خطوط المياه الداخلية والخارجية وشبكات المياه ومضخات المياه والخزان الأرضي والخزان العلوى عندما يوجد تسرب بالمكان .
    ومن اجل اثراء الواقع الخدماتي الذي يدخل في اطار تنظيف ونظافة الكنب اردنا ان نساهم معكم في ذلك، وذلك بالإعلان عن الخدمات المميزة في هذا المجال والتي ترفع شعار تنظيف الكنب والتي تحولت الى وجهة حقيقية يطلب خدماتها الالاف من عملاء تنظيف المنازل وكلهم امل ويقين وقناعة بالمستوى الراقي الذي تحققه
    شركة تنظيف كنب جنوب الرياض
    لهم من جودة في تنظيف المنازل سرعة في تنظيف المفارش.
    من المعروف حالياً أن مكافحة الآفات الحشرية لا تعني القضاء النهائي على تلك الآفات وإنما تعني الحد من إنتشارها وتقليل ضررها إلى مستوى أقل من الحد الإقتصادي للضرر بإستخدام كل الأساليب المتاحة والمناسبة لمكافحة الآفة الحشرية بطريقة بيئية سليمة بمعنى أنها لا تلحق الضرر بأي من مكونات النظام البيئي. والمقصود هنا بالحد الاقتصادي للضرر أنه الحد الذي ينتج عنه أضرار اقتصادية تزيد عن تكاليف المكافحة.
    شركة مكافحة حشرات جنوب الرياض وينصح ببدء المكافحة الكيماوية عندما تصل الكثافة العددية للآفة الحشرية إلى الحد الحرج الاقتصادي وهو الحد الذي تتساوى عنده تكاليف المكافحة الكيماوية مع العائد الاقتصادي للضرر بحيث يتسع الوقت للمكافحة قبل وصول تعداد الآفة إلى الحد الاقتصادي للضرر.
    بمجرد اتصالك بافضل شركة نقل اثاث بالرياض، سوف يتم ارسال فريق متخصص لانجاز هذه المهمة في أقصر فترة من الزمن.
    شركة نقل عفش جنوب الرياض يمكنك الاختيار من طواقم شركات نقل الأثاث، مثل اثنين أو ثلاثة أو أربعة عمال، للحصول على الأيدي الإضافية التي تحتاج إليها. يمكنك استئجار العديد من العمال علي قدر ما تحتاج إليه، وإذا كنت في حاجة الى عدد قليل فقط، وأنت تسعى لتوفير قدرا كبيرا من المال على نفقات تصليح الأثاث في حال حدوث ضرر له و انت تنقله.

    ReplyDelete
  8. في معظم الأحيان كل سيدة منزل لا تقدر على تنظيف المنزل بشكل كامل و بشكل مستمر لأن نظافة المنازل تعد من أساسيات الحياة لأن المنزل النظيف يبعث لنفوس راحة شركة تنظيف غرب الرياض فهي الملاذ الوحيد بعد يوم طويل من العمل.
    و لهذا سيدتي لابد لك من الحرص على نظافة المنزل بشكل مستمر و بشكل يومي،و لكن في بعض الأحيان تحتاجين سيدتي لتنظيف البيوت بشكل كامل و بشكل جدري و في هذه اللحظة قد تحتاجين إلى من يساعدكأو القيام بعملية التنظيف نيابة عنك، ففريق عمل شركات تنظيف المنازل يقوم بعملية تنظيف شقق بكل معايير الجودة و الاحترافية في شركة تنظيف شقق غرب الرياض .
    بحيث أنه يهتم بكل زاوية من زوايا منزلك و يصل فريق عمل شركة تنظيف بيوت لكل زاوية يصعب عليك سيدتي تنظيفها،كما أن عمال شركات تنظيف المنازل سيحرصون علي تنظيف المنزل بدقة عالية وذلك يتواجد فى معظم شركات تنظيف المنازل المعروفة علي المستوى الوطني و هذا يرجع إلى احترافية فريق عملها في تنفيذ كل الخدمات التي تقدمها شركة تنظيف فلل غرب الرياض .
    هناك العديد من الأشياء التي سوف تحتاج للاستفسار عنها عندما تقوم بالأتصال ب شركة نقل أثاث غرب الرياض . حيث انها فكرة جيدة لتقديم قائمة من الأشياء التي يجب أن نسأل عنها قبل البدء في إجراء مكالمات هاتفية، حتي يمكنك أن تكون متأكدا من أنك لا تفوت أي شيء مع الرسوم الإضافية التي لم تتوقعها. يجب عليك الحصول على مقتطفات من عدد من الشركات لأنهم جميعا لديهم خدمات وأسعار مختلفة.
    بمجرد اتصالك بافضل شركة تخزين أثاث غرب الرياض ، سوف يتم ارسال فريق متخصص لانجاز هذه المهمة في أقصر فترة من الزمن. يمكنك الاختيار من طواقم شركات تخزين الأثاث، مثل اثنين أو ثلاثة أو أربعة عمال، للحصول على الأيدي الإضافية التي تحتاج إليها. يمكنك استئجار العديد من العمال علي قدر ما تحتاج إليه.
    التفتيش عن بق الفراش يمكن أن يتم بسهولة إذا قمت بإزالة معظم المنسوجات والملابس الخاصة بك بما في ذلك الفرش والبطانيات والأغطية والسجاد والوسائد، وأغطية الكنب والوسائد. تفقد المناطق المختلفة في كامل مستوى المشكلة يجب غسل جميع الملابس في الماء الساخن وتجفف فورا أو وضعها في ضوء الشمس لبضع ساعات أة الاتصال ب شركة مكافحة حشرات غرب الرياض .
    تعتمد الشركة على مجموعه من الأدوات الحديثة المعتمد عليها فى أعمال مكافحة الفئران مثل الاعتماد على المصايد الحديثة وكذلك الاعتماد على مجموعه من الاصقات الحديثة التى بمجرد مرور الفئران على الاصقات يتم لصق أرجلها على تلك الاصقات الحديثة شركة مكافحة الفئران غرب الرياض ؛وكذلك يتم الاعتماد على مجموعه من المبيدات التى يتم يتم رشها فى أماكن تواجد الفئران

    ReplyDelete