2017-09-27 12 views
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からのトークンを保存するのに役立ちます。

答えて

1

ブラウザのCookieにデータを設定し、クライアント側で保存したデータを取得してブラウザのlocalStorageにデータを保存することで、これを修正する必要がありました。

関連する問題