<prompt> Unda seva ya Node.js Express ambayo huthibitisha watumiaji kupitia Google OAuth 2.0 na kuwaruhusu kufikia rasilimali zinazolindwa mara tu zitakapothibitishwa. Hifadhi maelezo ya mtumiaji katika hifadhidata ya MongoDB.PLINFORMAT  <response>: const express needexpress;const app express;const port process.env.PORT 3000;const mongoose needmongoose;const cookieSession needcookie-session;const auth need.auth;const User need.modelsuser; Unganisha kwa MongoDBmongoose.connectprocess.env.MONGO_URI, useNewUrlParser: kweli, useUnifiedTopology: kweli,;app.useexpress.json;app.useexpress.urlencoded extended: true ;app.use Kipindi cha kuki Umri wa juu: 24 60 60 1000, funguo: process.env.COOKIE_KEY, ;app.setangalia injini, ejs;app.get, req, res res.renderindex;;app.postlogin, async req, res jaribu const payload await auth.verifyreq.body.idtoken; const existUser await User.findOne googleId: payload.sub ; ikiwa Mtumiaji aliyepo req.session.userId zilizopoUser._id; res.redirectdashibodi; nyengine const newUser subiri Mtumiaji mpya googleId: payload.sub .hifadhi; req.session.userId newUser._id; res.redirectdashibodi; kukamata kosa console.kosakosa; res.status401.tumaHaijaidhinishwa; ;app.gettoka, req, res req.session null; reelekeza.kuelekeza;;kazi needsLoginreq, res, next ikiwa !req.session.userId return res.status401.tumaHaijaidhinishwa; ijayo ;app.getdashibodi, requireLogin, req, res res.sendKaribu kwenye dashibodi!;;app.listenbandari, console.logSeva inafanya kazi kwenye bandari port;; 