2017-10-03 10 views
0

これは私のserver.jsです:どのようにfeathers 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 }); 
}); 
////////////// 

私は私のコードに誤りがある場合、誰が私を助けることができますしてください?フロントエンドのファイルで何をすべきか?私はreactjsで働いています。

答えて

0

にfeathersjs authを接続する方法はいくつかあります。

特定のライブラリを使用せずにeasest道(... /角/リアクト):http://Your_url:port/authentication

認証URLPOSTリクエストを行います。

ボディ

{電子メール:メール、 パスワード:パスワード、 戦略: "ローカル" }

あなたの要求成功した場合は、を取得しますaccessTokenです。 そのトークンを保存して、保護されたルートにアクセスする必要があります。

重要: "email" attrを使用しています。デフォルトのauth attrです。必要に応じて設定することができます。

希望すると便利です。

+0

私はreactjsで動作し、私がルータを反応させて作成した保護されたルートにアクセスするために私accessTokenを使用していくつかの問題を持っているようです。 – John

0

デフォルトの認証(ログイン)apiを持つfeathersjsでは、このようなものです。

URL:http://localhost:8080/authentication

方法:ポスト

ボディ:{"strategy": "local","email":"[email protected]","password":"admin123"}

あなたが期待されるトークンを取得しますたより。

応答:その後

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

トークンに等しいヘッダの許可内の他のすべてのAPI呼び出しにこのトークンを追加します。

enter image description here

関連する問題