下面是詳細的步驟:
- 做
npm install --save cookie-parser
- 而
npm install --save express-session
修改您server.js讓你添加cookieParser並定義了一個Cookie祕密,
var cookieParser = require('cookie-parser');
app.use(cookieParser('a random quote'));
此代碼應該出現之前
app.set('views', './server/views');
app.set('view engine', 'ejs');
當你登錄用戶創建簽名的cookie,它是重要的,它是一個簽署的cookie,因爲環路將無法讀取無符號的餅乾。例如:
router.post('/login', function(req, res) {
User.login({
email: req.body.email,
password: req.body.password
}, 'user', function(err, token) {
if (err) {
if (err.details && err.code === 'LOGIN_FAILED_EMAIL_NOT_VERIFIED') {
res.render('reponseToTriggerEmail', {
title: 'Login failed',
content: err,
redirectToEmail: '/api/users/' + err.details.userId + '/verify',
redirectTo: '/',
redirectToLinkText: 'Click here',
userId: err.details.userId
});
} else {
res.render('response', {
title: 'Login failed. Wrong username or password',
content: err,
redirectTo: '/',
redirectToLinkText: 'Please login again',
});
}
return;
}
res.cookie('access_token', token.id, { signed: true , maxAge: 300000 });
res.render('engine', {
email: req.body.email,
accessToken: token.id,
redirectUrl: '/api/users/change-password?access_token=' + token.id
});
});
});
而那就是它。
我已經成功地用'res.setHeader('Set-Cookie','access_token ='+ token.id')設置cookie;'並在瀏覽器中看到它,但我必須承認,我不知道如何在回送中實際使用令牌。儘管cookie已設置,但Loopback不會獲取與Cookie關聯的用戶。 – user465342