node.js - 如何使用 OAuth 显示 google 帐户和 facebook 帐户的名称?
问题描述
我想在使用 Google/Facebook 帐户登录时显示名称,但是当我使用 facebook 帐户登录时,该名称不会出现在页面中,而当我使用 Google 登录时,它会出现
用户模型
const userSchema = new mongoose.Schema({
googleId:{
type:String
},
facebookId:{
type:String,
},
facebookName:{
type:String
},
googleName:{
type:String
}
})
谷歌和脸书路由器
router.get('/facebook',
passport.authenticate('facebook'));
router.get('/facebook/redirect',
passport.authenticate('facebook', { failureRedirect: '/login' }),
function(req, res) {
// Successful authentication, redirect home.
res.redirect('/blog' );
});
router.get('/google',
passport.authenticate('google', { scope: ['profile'] }));
router.get('/google/redirect',
passport.authenticate('google', { failureRedirect: '/login' }),
function(req, res) {
// Successful authentication, redirect home.
res.redirect('/blog');
});
博客路由器
router.get('/' , (req,res)=>{
res.render('blog' , {
user:req.user.facebookName ,
user:req.user.googleName
}
)})
看法
<h3>Welcome <%=user %></h3>
解决方案
推荐阅读
- javascript - Angular 6 - httpClient 不会向某些 url 发送获取请求
- unit-testing - go - 如何在测试用例中模拟结构的方法调用
- swift - 使用 swift 连接到 socket.io 时卡在连接状态
- sql - 如何在oracle中进行拆分和左连接
- angular - *ngFor 中的索引不起作用
- java - 我可以捕获已经捕获的异常吗?
- asp.net - 如何在 asp.net aspx 网页上注入小型 Angular 5 应用程序?
- java - 用于异步 Http 接口的 IBM Watson Speech to Text API
- oracle - 已删除记录的副本 - 触发器或其他方式
- javascript - JS && HTML5 如何在不同宽度和高度的画布中动态打开图片