2017-10-03 1 views
0

c'est mon server.js:Comment connecter le client au serveur avec l'authentification des plumes js?

app.use('/users', { 
    find(params) { 
     return Promise.resolve(Users); 
    } 
    }); 
    app.service('authentication').hooks({ 
    before: { 
    create: [ 
     auth.hooks.authenticate(['local', 'jwt']) 
    ] 
    } 
}); 
app.service('users').hooks({ 
    before: { 
    create: [ 
     local.hooks.hashPassword() 
    ] 
    } 
}); 
///////////////// 
app.post('/login', auth.express.authenticate('local', { successRedirect: '/app', failureRedirect: '/login' })); 

app.get('/app', (req, res, next) => { 
    res.json({ success: true }); 
}); 

app.get('/login', (req, res, next) => { 
    res.json({ success: false }); 
}); 
////////////// 

s'il vous plaît qui peut me aider si j'ai une erreur dans mon code? et ce que je devrais faire dans mon dossier en frontend? Je travaille avec reactjs.

Répondre

0

Il y a peu de façons de connecter les clients avec feathersjs auth.

La easest manière (REACT/angulaire/...) sans utiliser les bibliothèques particulières:

Faites une demande de poste à l'url auth: http://Your_url:port/authentication.

corps:

{email: email, mot de passe: mot de passe, stratégie : "locale" }

Si votre demande succès, vous obtiendrez un réponse avec un accessToken. Donc, vous devriez enregistrer ce jeton et l'utiliser pour accéder aux routes protégées.

IMPORTANT: en utilisant "email" attr, car c'est l'attribut d'authentification par défaut. Vous pouvez le configurer comme vous le souhaitez.

Espérons que cela aide!

+0

Je travaille avec reactjs et il semble que j'ai quelques problèmes avec l'aide de mon accessToken pour accéder routes protégées créées avec le routeur réagir. – John

0

Dans feathersjs ayant l'authentification par défaut (login) api quelque chose comme ceci.

Url:http://localhost:8080/authentication

méthode: post

Corps:{"strategy": "local","email":"[email protected]","password":"admin123"}

Que vous obtiendrez Token que vous attendiez.

réponse:

{ 
    "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6ImFjY2VzcyIsInR5cGUiOiJhY2Nlc3MifQ.eyJ1c2VySWQiOjEsImFjY291bnRJZCI6MSwiaWF0IjoxNTE", 
    "code": 200, 
    "authentication": "user login successful" 
} 

Ensuite ajouter ce jeton à tous les autres appels api en-têtes d'autorisation égale à jeton.

enter image description here