Web アプリケーションとモバイル アプリケーションの両方に対応するバックエンド サービスを Grails で開発しています。
フロントエンドは AngularJS を使用して開発されており、モバイル アプリは同じ AngularJS コードベースを使用して PhoneGap でネイティブになります。
現在、Web アプリとモバイル アプリの両方で機能する Grails バックエンドで認証を実装する適切な方法を探しています。
3 つのアイデア:
1) ユーザー名とパスワードを LocalStorage に保存し、リクエストごとにバックエンドでユーザーを認証する
2) Cookie ベースの認証を使用します (PhoneGap で Cookie を有効にするのは難しいため、AJAX 応答から抽出し、AJAX 要求に添付する必要があります)。
3) バックエンドですべてのセッションのトークンを生成し、それを LocalStorage に格納するカスタム プロトコルを開発します。セッション トークンは、すべてのリクエストでバックエンドに送信されます。
4) 秘密鍵/公開鍵メカニズム (Amazon AWS と同様) を使用してすべてのリクエストに署名します。この場合でも、バックエンドはリクエストごとに署名の正確性を検証する必要があります (セッションの概念はありません)。
私は LocalStorage をあまり信頼していませんが、他にアイデアがなく、例を見つけることができません (他のバックエンドおよびフロントエンド テクノロジの例も同じように役立ちます)。
バックエンドは HTTPS で実行されると想定できます。