私は数か月前にGoogle App Engineから移行しました。しかし、ユーザーはGAEのuser_id属性で識別されるため、認証には依然として頼りにしています。Google App EngineからGoogle OpenIDにユーザーを移行する
私の(今は外部の)アプリケーションは、暗号化された署名済みのタイムスタンプのあるログイン要求を使用して、ユーザーをGoogle App Engineアプリケーションにリダイレクトします。 GAEアプリケーションは、GAEの「ユーザー」サービスを使用してログインを実行します。 GAEに正常にログインすると、暗号化された署名済みのタイムスタンプ付きの応答を使用して、ユーザーは再び外部アプリケーションにリダイレクトされます。 初歩的な実装はhereとhereです。ご覧のとおり、これは非常に基本的なものであり、重大な暗号に依存してパフォーマンスが低下します。
私の外部アプリケーション(この場合はDjangoアプリケーション)は、user_idをuserテーブルのpasswordフィールドに格納しています。 user_idに加えて、私はDjangoにユーザー名と電子メールを保存するためにGAEからの電子メールアドレスを取得するだけです。
ここで、GAEサービスへの依存関係を削除したいと思います。おそらく最初のアプローチは、新しいパスワードを設定してDjangoを使って自分の認証を行うように要求する電子メールを各ユーザに送ることです。
GoogleのOpenIDサービスを利用して、ユーザーに実際に違いがないようにするソリューションを好むだろう。これはまた、GoogleカレンダーAPI用のAuthSubトークンを取得するために、ユーザーをGoogleに送信する必要があるため、これが好ましい
問題は、GAEを使用せずに特定のGoogleアカウントのGAE user_id属性を取得する方法が見つからないことです。 OpenIDと他のすべての認証プロトコルは異なる識別子を使用します。
ここで問題になるのは、私がまだ見ていないこの目的のために使用できるAPIはどれですか?ユーザーアカウントを移行する方法について他に解決策やアイデアはありますか?
ありがとうございます!
お返事ありがとうございます。この問題は、ユーザーがその間に自分のメールアドレスを変更している可能性があることです。たとえば、Gmail以外のアドレスからgmail、または他の非Gmailメールアドレスに変更した可能性があります。これまで経験したことがあり、ユーザーが私に連絡して古いアカウントと関連データを再リンクする方法を手動で提供する必要がありました。 user_idは決して変更されない静的な識別子であり、私は本当に後ろに誰も残されていないことを確認したいと思います。 – mback2k