2016-04-26 9 views
5

Ich habe eine Koa-Anwendung erstellt, die Pass mit einer lokalen Authentifizierungsstrategie verwendet. Ich möchte das Modul koa-generic-session verwenden, damit ich die Sitzungsdaten in Redis speichern kann.Wie benutze ich Reisepass mit koa-generic-session()?

Wie verwende ich diese beiden zusammen?

fand ich diese Repo, die dies tut, aber sie nicht wirklich scheinen die Sitzungen zu verwenden, und ich bin nicht sicher, ob es richtig ist: https://github.com/dozoisch/koa-react-full-example

Antwort

3

(Disclaimer: Ich bin mit Koa nicht vertraut, aber Ich bin mit Express und Pass.)

Ich habe über den Link, den Sie bereitgestellt haben, geschaut, und hier ist, wie sie koa-generic-session mit Reisepass verwenden.

In der Datei server.js beziehen sich die folgenden Zeilen auf die Konfiguration von Passport.

Zeile 38 ist die traditionelle Passport-Konfigurationsdatei, die einfach Serialisierung und Deserialisierung einrichtet.
Zeile 40 bringt koa.js und übergibt es die App, Config-Datei und Pass-Variablen.

Der folgende Code aus koa.js ist:

04 - const session = require("koa-generic-session"); 

18 - app.keys = config.app.keys; 

bei koa.js Sehen, koa-generic-Sitzung wird die Variablen Sitzung zugewiesen. Diese Variable wird später hier genannt:

35 - app.use(session({ 
36 -  key: "koareactfullexample.sid", 
37 -  store: new MongoStore({ url: config.mongo.url }), 
38 - })); 

Zeile 18, app.keys als Dokumentation für koa-generic-session Anrufe initialisiert für. Während das verknüpfte Projekt einen MongoStore mit koa-generic-session verwendet, können Sie diesen Konstruktor einfach durch einen koa-redis-Konstruktor ersetzen, wie in der Dokumentation koa-generic-session gezeigt.

Schließlich wird Passport initialisiert:

41 - app.use(passport.initialize()); 
42 - app.use(passport.session()); 

Dieser Code ist ähnlich wie Reisepass mit Express zu verwenden, wie das ist, alle Passport-Authentifizierung über eine Sitzung verwalten muss.