2010-03-30 7 views
14

Zunächst verstehe ich OpenId ist für die Authentifizierung und OAuth ist für die Autorisierung und im Gegensatz zu anderen Fragen auf der Website ich nicht fragen, welche für welche verwendet werden sollte, aber ob jemand eine Lösung beraten kann für mein Problem.LinkedIn/Twitter/Facebook als OAuth und OpenId Verwendung

Ich möchte Benutzern erlauben, sich über ihren LinkedIn/Twitter/Facebook Account bei mir einzuloggen, nachdem sie sich über LinkedIn angemeldet haben. Dann könnten sie ihren Twitter und Facebook Account als optionale Login Methode autorisieren. Dies würde dem Benutzer erlauben, sich über eines der drei zu authentifizieren, aber am Ende mit seinem Benutzerkonto auf meiner Seite enden.

Ich möchte auch die Berechtigung verwenden, die sie zur Verfügung gestellt haben, um grundlegende Benutzerdetails (Profil Bild/Name usw.) zu erhalten und Status-Updates zu posten.

Ich möchte nicht einen Benutzer bitten, sich mit seinem Konto über openId einzuloggen, dann das gleiche Konto erneut über oauth zu autorisieren, um meine Website in ihrem Dienst-Feed veröffentlichen zu lassen und dies für jeden der 3 zu tun Dienstleistungen.

Irgendwelche Ideen oder Probleme zu diesem Problem?

Antwort

2

Haben Sie sich RPX angesehen?

https://rpxnow.com/

+2

Danke für den Vorschlag andrew aber möchte direkt mit dem Dienstanbieter und nicht über einen anderen Anbieter sprechen und ich kann nicht sehen, dass RPX unterstützt LinkedIN – monkeylee

+1

RPX unterstützt LinkedIn: http: //www.janrain.com/blogs/linkedin-added-rpx – Anirvan

0

Ich will nicht um einen Benutzer bitten, mit ihrem Konto über OpenID einzuloggen dann wieder das gleiche Konto autorisieren über oauth meiner Seite zu ermöglichen, ihren Service-Feed zu veröffentlichen und muß Mach das für jeden der 3 Dienste.

Ich fürchte, Sie müssen das Benutzerkonto mit jedem der 3 Dienste einzeln verbinden. Auf welcher Plattform bauen Sie Ihre App auf? Wenn es Ruby ist, dann sieht ein Edelstein wie vielversprechend aus.

+0

Es macht mir nichts aus, mich mit jedem der 3 Dienste unabhängig zu verbinden, ich möchte nicht, dass der Benutzer zweimal pro Dienst authentifiziert werden muss, einmal für die Anmeldung und noch einmal, um Datenabfragen oder -veröffentlichungen zu erlauben zu ihrem Strom. Plattform ist - ASP.NET MVC/C# – monkeylee

+0

Nachdem Sie mit jedem Dienst autorisiert haben, speichern Sie die geheimen Token in Ihrer Datenbank, damit Ihre App in Zukunft für diesen Benutzer eine Verbindung herstellen kann. Eine zweite Berechtigung zum Veröffentlichen in ihrem Stream wird nicht benötigt. –

+0

Ich stimme zu, aber sobald dieser Service 2 Tage später zugewiesen wird, kehrt der Benutzer zu meiner Site zurück und klickt Twitter Login (um den Benutzer auf meiner Seite zu authentifizieren, keinen Stream-Zugriff wie zuvor) twittert nicht, als wenn er sie fragt Willst du jedes mal Zugang geben? Wo alles, was ich will, ist es, ihre Twitter-Konto-Details zu authentifizieren, die geheimen Token zurückgeben, die ich gespeichert habe und vergleichen kann? – monkeylee

10

Wenn Sie ASP.NET MVC verwenden, ist DotNetOpenAuth eine hervorragende Lösung zur Unterstützung von OpenID/OAuth-Sites. StackOverflow verwendet es und sie sind ziemlich wählerisch für den Code, den sie auf der Site verwenden.

Die Integration, wenn OpenID mit DotNetOpenAuth ist ziemlich einfach. Ich habe OAuth nicht ausprobiert, aber ich erwarte nicht, dass es von geringerer Qualität ist.

Leider unterstützt Facebook OpenID/OAuth nicht, daher müssen Sie eine andere Lösung verwenden. Die eine, die ich verwende, ist Clarity Consulting Facebook Developer Toolkit. Es funktioniert, obwohl ich gewisse Beschwerden über die Qualität des Codes habe; leider habe ich noch nichts besseres gefunden. (Hinweis: Wenn jemand eine bessere Alternative kennt, lass es mich wissen)

Die grundlegende Integration von Facebook Connect mit dem Facebook Developer Toolkit ist auch relativ einfach. Ihr Objektmodell ist jedoch etwas durcheinander, da sie versuchen, den Facebook-APIs so nahe zu kommen, dass die HTTP-API-Muster stark durchbluten. Trotzdem macht es die Arbeit.

Update: Jetzt, da Facebook angekündigt hat, dass sie OAuth 2.0 unterstützen werden, könnte DotNetOpenAuth die beste Lösung sein.