質問を1つずつ取り上げましょう。
私が理解していることから、これはすべてSSLで処理する必要がありますが、Backbonejsは1ページのフレームワークであるため、ログインページにHTTPSでアクセスする必要があると単純に言うことはできません。それで、これは私にアプリケーション全体でHTTPSを使用することを強制しますか?
さて、そこに開梱することがたくさんあります。SSL/HTTPSから始めましょう。HTTPSはプロトコルです; つまり、サーバーとの間でパケットを送受信する方法を定義します。アプリケーションが単一ページであるか複数ページであるかは関係ありません。どちらのタイプのサイトでも、HTTPまたはHTTPSのいずれかを使用できます。
そうは言っても、HTTP経由でログイン情報(またはパスワードを含むその他のもの)を送信することは、「悪意のある人」がユーザーのパスワードを盗むのを非常に簡単にするため、非常に悪い考えです。したがって、シングルページアプリでもマルチページアプリでも、ログイン情報を送信するときは常にHTTPSを使用する必要があります。HTTPとHTTPSの両方をサポートする必要があるのは面倒であり、他の非ログインデータも機密性が高い可能性があるため、多くの人はHTTPSを介してすべての要求を実行することを選択します(ただし、そうする必要はありません)。
したがって、実際の質問に答えるために、BackboneはログインにHTTPSを使用することをまったく強制していません。ユーザーのパスワードを保護することはあなたを強制しています。
次のステップでは、RESTサーバーが資格情報を検証し、それらが承認された後、RESTサーバーがクライアントにアクセストークンを送信します。このトークンは(クライアント側で)ローカルストレージまたはCookieに保存されていますか?
特定のフレームワークはそれを異なる方法で行う可能性がありますが、大多数はCookieを使用してトークンをローカルに保存します。さまざまな理由から、それらはその種のものに最適なツールです。
また、RESTサーバーが一定時間後にユーザーをログアウトできるように、ログインはサーバーに保存されますか?
基本的に正しい考えはありますが、サーバーはログインを正確に保存しません...サーバーがユーザーにログインして「セッション」を作成するようなものです。これにより、そのセッションにIDが付与され、ユーザーが新しいリクエストを行うたびに、そのセッションIDがリクエストに付属します(これがCookieの動作方法であるため)。これで、サーバーは「これはボブのセッションです」と言って、ボブに適切なコンテンツを提供できます。
これで、クライアントはこのアクセストークンを他の要求と一緒に送信するため、サーバーはクライアントを識別し、要求を承認するかどうかを決定できます。では、アクセストークンはRESTサーバーにも保存されますか?
2つの別々のサーバーを実行している場合、それらは魔法のように通信することはありません。あなたは彼らを互いに話させなければなりません。このため、アプリ全体に1台の(おそらくRESTフルな)サーバーを使用できれば、作業は楽になります。それができない場合、RESTサーバーは、要求を受け取るたびに、他のサーバーに「セッションSESSIONIDについて教えてください」と尋ねる必要があります。
最後に、これは賢い人々が「oauth」と呼ぶものですか、それともそれに関連していますか?
ある種、ある種、実際にはそうではありません。OAuthは承認標準であるため、接線方向に関連していますが、ログインシステムにまったく別のサーバーが含まれていない限り、OAuthを使用する理由はありません。OAuthを使用して、「2つのサーバー、1つのRESTフルなサーバーではない」問題を解決できますが、それはおそらくやり過ぎでしょう(そして、この1つのStack Overflowの投稿で説明できる範囲外であっても)。
お役に立てば幸いです。