0
passport.jsから返されたjwtトークンをブラウザlocalStorageに保存しようとしていますが、トークンが生成されているので、サーバーからクライアントへの通信に問題がありますサーバー。LocalstorageでPassport.jsからトークンを保存する方法
クライアントブラウザのlocalStorageでサーバーによって生成されたトークンを設定する方法については、何か助けてください。
ルート
// Setting the github oauth routes
app.get('/auth/github', passport.authenticate('github', {
failureRedirect: '/signin'
}), authCallback);
app.get('/auth/github/callback', passport.authenticate('github', {
failureRedirect: '/signin'
}), authCallback);
passport.js
passport.use(new GitHubStrategy(
{
clientID: process.env.GITHUB_CLIENT_ID || config.github.clientID,
clientSecret: process.env.GITHUB_CLIENT_SECRET || config.github.clientSecret,
callbackURL: config.github.callbackURL
},
((accessToken, refreshToken, profile, done) => {
User.findOne({
'github.id': profile.id
}, (err, user) => {
if (err) {
return done(err);
}
if (!user) {
user = new User({
name: profile.displayName,
username: profile.username,
provider: 'github',
github: profile._json
});
user.save(() => done(err, user));
} else {
return done(err, user);
}
});
})
));
AuthCallBack
export const authCallback = (req, res) => {
const { TOKEN_SECRET } = process.env;
if (!req.user) {
res.redirect('/#!/signin?error=emailRequired');
} else {
const token = jwt.sign(
{ user: req.user.id, name: req.user.name },
TOKEN_SECRET,
{ expiresIn: 72 * 60 * 60 }
);
// window.localStorage.setItem('token', token);
res.redirect('/#!/app');
}
};
私は感謝します私のブラウザlocalStorageにauthCallBackからのトークンを保存するのに役立ちます。