Google Appengine을 두꺼운 클라이언트와 통합합니다
-
18-09-2019 - |
문제
Java Swing Thick Client를 프론트 엔드 및 Google Appengine (Java One)으로 백엔드로 사용하는 다중 사용자 클라이언트 서버 솔루션을 만들고 싶습니다.
문제는 GAE가 로그인 및 아웃을위한 웹 기반 양식 만 제공하므로 두꺼운 클라이언트에서 Google 계정 기능을 사용하는 사소한 방법이 없다는 것입니다.
GAE WebApp에 두꺼운 클라이언트 로그인 및 로그 아웃을 허용하는 방법에 대한 조언/힌트/아이디어를 제공 할 수 있습니까?
해결책
클라이언트 앱이 Google 계정에 대해 인증 할 수있는 방법이 있지만받은 토큰을 Appengine으로 전달할 수 있는지는 모르겠습니다. 보다: 설치된 응용 프로그램 용 ClientLogin
다른 팁
죄송합니다. 간접적으로 만 대답 할 수 있습니다. Google 계정으로 AppSpot.com의 앱에 로그인 할 수 있습니다. 쿠키를 유지하고 여러 서버에 연락을 취하는 등 브라우저가 할 모든 작업을 수행하면됩니다.
나는 몇 달 전에 사산 프로젝트를 위해 이것을 가지고 놀았고, 대부분 로그인하기 위해 컬을 실행하는 쉘 스크립트로 끝났습니다. 아마도 당신은 필요한 것을 가져갈 수 있습니다.
#!/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이 제안한 바와 같이 ClientLogin 승인 프로세스 가이 문제를 해결하고 있습니다.
최소한의 대안 접근 방식으로 웹 기반 (HTML) 양식을 두꺼운 클라이언트에 포함시킬 수 있습니다. 즉, HTML 렌더링을 지원하는 Java 구성 요소를 사용합니다. JEditorPane
와 함께 HTMLEditorKit
이 구성 요소를 스윙 앱 내부에 설치하고 제시하십시오. 최소한 사용자는 앱과 브라우저를 이런 방식으로 전환 할 필요가 없습니다.