سؤال

أرغب في إجراء حل خادم عميل متعدد المستخدمين مع عميل سميكة جافا سوينغ كعمل أمامي و Google Appengine (Java One) كجدارة مختارة.

المشكلة هي أن GAE يوفر فقط نماذج قائمة على الويب لتسجيل الدخول والخروج، لذلك لا توجد طريقة تافهة لاستخدام ميزات حسابات Google في عميل سميكة.

هل يمكنك تقديم بعض النصائح / التلميحات / الأفكار حول كيفية السماح بتسجيل الدخول إلى عميل سميكة وتسجيل الخروج من GAE WebApp؟

هل كانت مفيدة؟

المحلول

هناك طريقة للتطبيقات العميلة للمصادقة ضد حسابات Google، لكنني لا أعرف ما إذا كان الرمز الذي تتلقاه يمكن إرجاعه إلى Appengine. يرى: clientlogin للتطبيقات المثبتة

نصائح أخرى

أنا آسف، لا أستطيع إلا أن أجب عليك بشكل غير مباشر. من الممكن تسجيل الدخول إلى تطبيق على Appspot.com مع حساب Google. عليك فقط أن تفعل كل ما سيعمل فيه المتصفح، بما في ذلك الحفاظ على بعض ملفات تعريف الارتباط والاتصال بالعديد من الخوادم لأنها ترتدك.

لقد لعبت حولها مع هذا للمشروع الفاتي قبل شهرين وانتهى بها الأمر باستخدام برنامج نصي شل الذي يدير في الغالب حليقة لتسجيل الدخول. ربما يمكنك أن تأخذ منه ما تحتاجه.

#!/bin/bash

my_app="set-this-to-my-app-id"
url="http://$my_app.appspot.com"
curl='curl --cookie-jar cookies'

if [ -z "$EMAIL" -o -z "$PASS" ]; then
    echo -n 'Email: '
    read EMAIL
    echo -n 'Pass: '
    read PASS
fi

rm -f cookies auth

echo 'Login'
$curl https://www.google.com/accounts/ClientLogin --output auth \
      -d "Email=$EMAIL" -d "Passwd=$PASS" \
      -d accountType=HOSTED_OR_GOOGLE     \
      -d source=$my_app                   \
      -d service=ah

. auth # XXX Be careful here. The output of the above
       # command happens to be Bash syntax too!
rm -f auth

echo 'Logging into app and getting cookie'
$curl "$url/_ah/login?continue=$url/console/&auth=$Auth"

echo
echo 'Example POST query'
$curl -X POST --cookie cookies "$url/some/path" -d 'foo=bar'

echo
rm -f cookies

كما اقترحته Jason Defontes عملية إذن ClientLogin تتناول هذه المشكلة.

كهدوء بديل من جهد الحد الأدنى، يمكنك تضمين نماذج (HTML) على الويب في عميلك السميك، أي استخدام مكون Java يدعم تقديم HTML (مثل JEditorPane مع ال HTMLEditorKit تثبيت) وتقديم هذا المكون داخل تطبيق Swing الخاص بك - على الأقل لن يحتاج المستخدمون إلى التبديل مرة أخرى بين تطبيقك والمتصفح بهذه الطريقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top