5

現在のアプリのドメイン名ではなく、別のドメインでCookieを取得することは可能ですか?

別のウェブサイトのAPIにアクセスするアプリケーションを構築しています。ユーザーがすでに他のサイトからログインしている場合、私のブラウザはそのドメイン名でCookieを作成します。たとえば、ユーザーがwww.example.comでログインすると、ブラウザはCookieを保存します: cookies['token']www.example.comドメインの下。ユーザーが私のWebサイトwww.mywebsite.comにアクセスしたときに、Railsサーバーのwww.example.comでCookieを取得するにはどうすればよいですか?

どんな助けでも大歓迎です。

4

2 に答える 2

4

これは可能ですが、クライアント、Webサイト、および他のWebサイトがすべて連携する必要があります。サイトAへの認証方法を知っているクライアントがいます。サイトAに対して認証する方法を知っているユーザーとして、サイトBを表示したいと考えています。これを実現する基本的な方法は、クライアントにサイトAに連絡して自分自身を認証し、サイトBが信頼できるサイトAからトークンを取得してから、そのトークンをサイトBに渡すことです。

事実上、OpenIDまたはOAuthの非常に特殊なケースを構築する必要があります。これは確かに可能ですが、www.example.comを再生するには、www.example.comにいくつかの変更を加える必要があります。あなたがこれを行うことができれば、素晴らしい。

OAuthに関するすべてを読むことから始めます。これを正確に使用する必要はありませんが(可能ですが)、何をする必要があるかを説明するのに役立ちます:http: //hueniverse.com/oauth/

于 2012-06-18T22:45:55.047 に答える
1

ドメインの異なるサブドメイン間でCookieを共有することはできますが、複数のドメイン名間でCookieを共有することはできません。

クッキーはブラウザによって保存され、ブラウザは外部ドメイン名からのクッキーにアクセスしたり保存したりすることを許可しません。ブラウザがこれを許可した場合、それは大きなセキュリティ上の欠陥になります。

ただし、サーバーに保存されているセッションデータをドメイン名間で共有することはできます。これは完全に些細なことではないかもしれませんが、セッション情報はサーバーに保存されるため、必要に応じてアプリ間でサーバー上の情報にアクセスできます。セッションデータがデータベースに保存されている場合、必要なのは両方のドメインへのデータベースアクセスを許可することだけです。必要に応じて、実際にデータベースを外部ドメイン名で開き、外部ドメインをサーバー上のデータベースに直接接続することができます。

于 2012-06-19T21:56:25.240 に答える