2012-06-17 10 views
48

Ich brauche mehrere Authentifizierungstypen in meiner App; insbesondere: Einige Teile der App erfordern eine Authentifizierung für Dropbox, und einige Teile erfordern eine E-Mail-basierte Authentifizierung wie die BrowserID.Mehrere Auth in Yesod?

Wie kann ich damit umgehen?

Kann ich die Authentifizierung an eine Unterwebsite anhängen? Da die YesodAuth-Klasse in allen Beispielen den Master-Fundamentaldatentyp als Argument verwendet, ist es nicht offensichtlich, wie ich das tun kann.

Wenn nicht, gibt es einen anderen Weg?

Antwort

3

Entschuldigung, wenn meine Antwort ein bisschen vage ist (es ist ein paar Monate her, seit ich Jessod benutzt habe, und der Entwicklungszyklus ist ziemlich schnell), aber wenn ich mich richtig erinnere, kann man innerhalb der YesodAuth-Klasse mehrere Varianten der Authentifizierung angeben (browserID, google usw.), in welchem ​​Fall dem Benutzer die Option zur Verfügung gestellt wird, welche er bei jeder Authentifizierungsanfrage verwenden soll. Etwas wie:

authPlugins _ = [ authBrowserId , authGoogleEmail ]

usw.

Unabhängig davon, ob Sie explizit einen Authentifizierungstyp für jeden Umstand einstellen können, weiß ich nicht, ich habe Angst, und ob dies Ihr Problem löst ich bin unsicher.