私は他のプロジェクトのための標準認証宝石としてDeviseを使用しました。別のプロジェクトでは、私はDevise + OmniauthをTwitter認証に使用しました。Devise + Omniauthにはいくつかの種類のログインがありますか?
新しいプロジェクトでは、エンドユーザーがTwitterやFacebook経由でログインしたり、アプリケーションから登録できるようにする必要があります。将来、ユーザーは自分のアカウントをリンクすることができます。たとえば、彼のTwitterとFacebookアカウント。または、彼のTwitterと "ネイティブ"アカウント。 「ネイティブ」は、彼がウェブアプリに直接登録したアカウントです。
Deviseはそのようなことができますか?もしそうなら、私たちはどのようにユーザーのアカウントを結びつけるのですか?これの背後にあるコンセプトは何ですか?どのFacebookやTwitterアカウントがどのユーザーに属しているかをアプリはどのように知っていますか?
アイデアと提案を歓迎します。
EDIT:
私はhttp://railscasts.com/episodes/236-omniauth-part-2?autoplay=trueを追ってきたと私は何を得るいけないです。
- ユーザーがアプリの外に署名されている場合、
- ユーザは、異なるサービスプロバイダ(FacebookやTwitter、 など)としてアプリに登録されたアカウント、
- ユーザがサインを持っています。
新しいサービスプロバイダと既存のアカウントをリンクする方法をアプリがどのように認識していますか?
Stackoverflow.comがこの機能を持っています。しかし、彼らが "マルチサイン"機能に含まれていないサービスプロバイダーの1つはTwitterです。 TwitterはユーザーのメールをAPIで公開していないため、私はそれを推測している。一方、他のサービスプロバイダ(Facebook、Yahoo、Gmail)はそうしている。
良い説明。これがスタックオーバーフローがTwitter認証を有効にしない主な理由ですか? –
それはおそらく理由です。管理者に直接質問してください。政治的理由もあるかもしれません。 –
StackoverflowはOAuth 1.0を使用しているためTwitterをサポートしていません。私はブログで、現在のシステムに統合するのが苦痛だと読んでいます。ユーザーをサインインさせてから、ユーザー名に対して別のアカウントを追加するのが最善の方法です。それがSOのことです。 http://meta.stackexchange.com/questions/74551/enable-authentication-via-twitter-oauth – Ash