私は実際にこの問題の解決策に取り組んでいます。このプロジェクトはSaplingと呼ばれ、ユーザー管理を扱う AngularJS スターター プロジェクトです。
これは私が取ったアプローチです:
ユーザーがサイトにアクセス -- html と javascript をロード
Angular がロードされたら、 にGET
リクエストを送信し'/api/user/me'
ます。ユーザーがログインしている場合は、ユーザーの表現を返します。
{
"name": "Bob",
"admin": false,
// ect.
}
ユーザーがログインしていない場合は、エラーが返され401
ます。
ユーザー オブジェクトが返された場合 -- ユーザーが管理者でもあるかどうかを確認します。を受信した場合401
は、ユーザーをログイン ページにリダイレクトします (Angular アプリ内にログイン ページを作成するか、ユーザーが混乱しないと思われる場合は、Google ログインに直接送信できます)。
では、App Engine のユーザー サービスでこれを行うにはどうすればよいでしょうか。
URL 「/api/user/me」のリクエストハンドラーで
電話get_current_user()
してis_current_user_admin()
ユーザーをログイン URL とログアウト URL に誘導するにはどうすればよいですか?
次の URL でリクエスト ハンドラを作成できます。
「API/ユーザー/ログイン」
webapp2.redirect(users.create_login_url())
「API/ユーザー/ログアウト」
webapp2.redirect(users.create_logout_url())
そして、ユーザーを Angular からそれらに誘導します。
基本は網羅できたと思います。詳細が必要な場合は、お知らせください。