Ich möchte, dass Benutzer auf einen RESTful-Server zugreifen und mit einem Zugriffstoken in der Abfragezeichenfolge authentifiziert werden können. Zum Beispiel https://api.example.com/v1.0/articles?access_token=1234
Authentifizieren von Benutzer durch Zugriffstoken/base auth auf jedem Handler
Ich habe in der models
-Datei definiert:
AccessToken
created UTCTime default=CURRENT_TIME
userId UserId
token Text
UniqueUserId userId
UniqueToken token
deriving Eq
deriving Show
Jedes Mal, wenn ein Benutzer erstellt wird, werden vergeben wir ihnen ein einzigartiges Token.
Die Frage ist, wie die Authentifizierung für jeden Handler im laufenden Betrieb zu tun. Zum Beispiel würde ich einen ArticlesR
Handler haben, dem Zugriff nur gewährt werden sollte, nachdem der Benutzer authentifiziert wurde (und somit auch autorisiert wurde).
Es sollte kein Cookie beteiligt sein. Jede Anfrage wird den Benutzer erneut authentifizieren. So könnten wir einen vollständig entkoppelten Server haben, der jede beliebige Domain bedienen kann.
Die gleiche Frage kann auch nach Base-Auth gefragt werden. Der Kern ist: Wie zu authentifizieren aus dem Innern eines regelmäßigen Handler
Ich sehe einen Verweis auf meine Anwendungsfall in https://hackage.haskell.org/package/yesod-auth-1.2.4/docs/src/Yesod -Auth.html # maybeAuthId – amitaibu