Javascript 使用Passport在单击Google按钮登录时重定向

Javascript 使用Passport在单击Google按钮登录时重定向,javascript,node.js,reactjs,express,passport.js,Javascript,Node.js,Reactjs,Express,Passport.js,现在,我想要: 当用户单击Google登录按钮时,会被重定向到oAuth同意屏幕 在同意屏幕中,当用户选择帐户时,它将被重定向到登录用户的路由/auth/google/redirect(这是正确的路由吗?)。那么,我想设置一个cookie,我正在app.js中进行设置。这表明用户已登录 现在,如何从react前端的NavBar组件发出请求?现在,我有一个按钮。我想知道当我点击按钮时发生的过程;我应该呼叫哪个后端路由 我真的有麻烦了。请建议我一些资源或帮助我理解它。谢谢 路由/auth.

现在,我想要:

  • 当用户单击Google登录按钮时,会被重定向到oAuth同意屏幕

  • 在同意屏幕中,当用户选择帐户时,它将被重定向到登录用户的路由
    /auth/google/redirect
    (这是正确的路由吗?)。那么,我想设置一个cookie,我正在
    app.js
    中进行设置。这表明用户已登录

现在,如何从react前端的
NavBar
组件发出请求?现在,我有一个按钮。我想知道当我点击按钮时发生的过程;我应该呼叫哪个后端路由

我真的有麻烦了。请建议我一些资源或帮助我理解它。谢谢



路由/auth.js

const express=require(“express”)
const passport=需要(“passport”)
const auth=require(“./控制器/auth”)
const router=express.router()
//谷歌认证
router.get(“/google”),passport.authenticate(“google”{
范围:[“配置文件”]
}))
//google重定向到的回调路径
路由器.get(“/google/redirect”、passport.authenticate(“google”),(req,res)=>{
//在这里做什么?????
})
module.exports=路由器
config/passport.js

const passport=require(“passport”)
const GoogleStrategy=require(“passport-google-oauth20”)。策略
const User=require(“../models/User”)
passport.user((用户,完成)=>{
完成(空,user.id)
})
passport.deserializeUser((id,done)=>{
User.findById(id).then((User)=>{
完成(空,用户)
})
})
passport.use(
谷歌新战略(
{
clientID:process.env.clientID,
clientSecret:process.env.clientSecret,
回调URL:“/auth/google/redirect”,
},
(accessToken、refreshToken、profile、done)=>{
//检查用户是否存在
findOne({googleID:profile.id})。然后((currentUser)=>{
如果(!currentUser){
//如果用户不存在,请创建一个新用户
新用户({
用户名:profile.displayName,
googleID:profile.id,
})
.save()
.然后((新用户)=>{
log(`newUser created-${newUser}`)
完成(null,newUser)
})
}
如果(当前用户){
log(`当前用户是-${currentUser}`)
完成(空,当前用户)
}
})
}
)
)

NavBar.js


从“React”导入React
常量导航栏=()=>{
返回(
//这是正确的URL吗???
使用Google登录//如何处理onClick此处
)
}
导出默认导航栏
app.js

app.use(cookieSession)({
最大值:24*60*60*1000,
密钥:[进程环境cookieKey]
}))
//初始化护照
应用程序使用(passport.initialize)
应用程序使用(passport.session)

您可以在按钮组件中使用onClickListener,并调用您的/auth/google后端route@Hari然后呢?有很多文章一步一步地解释了如何实现这一目标。例如:太好了。你有谷歌oAuth和React的另一篇文章吗@DHRUVSHAH您可以在按钮组件中使用onClickListener并调用您的/auth/google后端route@Hari然后呢?有很多文章一步一步地解释了如何实现这一目标。例如:太好了。你有谷歌oAuth和React的另一篇文章吗@DhruvShah