Rumah  >  Artikel  >  hujung hadapan web  >  nodejs log masuk lompat halaman lompat halaman lompat

nodejs log masuk lompat halaman lompat halaman lompat

PHPz
PHPzasal
2023-05-28 10:55:07862semak imbas

lompat halaman log masuk nodejs lompat halaman lompat

Node.js ialah persekitaran berjalan JavaScript berdasarkan enjin Chrome V8. Ia membolehkan JavaScript berjalan di bahagian pelayan, merealisasikan konsep bahasa pembangunan bahagian hadapan dan belakang yang bersatu. Node.js digunakan secara meluas dalam pembangunan web, terutamanya memainkan peranan penting dalam fungsi log masuk dan lompat halaman. Artikel ini akan menggabungkan pelaksanaan kod untuk memperkenalkan secara terperinci pengetahuan yang berkaitan dengan log masuk Node.js dan lompat halaman.

1. Pelaksanaan fungsi log masuk

Apabila menggunakan Node.js untuk melaksanakan fungsi log masuk, kita perlu memberi perhatian kepada perkara berikut:

1) Apabila menggunakan HTTP protokol untuk menghantar data, untuk mengelakkan kata laluan daripada dihantar dalam teks yang jelas, protokol HTTPS perlu digunakan.

2) Bahagian hadapan menghantar nama pengguna dan kata laluan yang dimasukkan oleh pengguna ke bahagian belakang melalui permintaan AJAX.

3) Bahagian belakang perlu lulus pengesahan untuk menentukan sama ada nama pengguna dan kata laluan adalah betul. Jika pengesahan diluluskan, tetapkan sesi untuk menyimpan status log masuk pengguna.

Berikut ialah contoh kod untuk melaksanakan fungsi log masuk:

Kod belakang:

const express = require('express')
const bodyParser = require('body-parser')
const session = require('express-session')

const app = express()

// 配置 body-parser,用于解析 post 请求体
app.use(bodyParser.urlencoded({
  extended: false
}))

// 配置 express-session,用于保存 session
app.use(session({
  secret: 'keyboard cat',
  cookie: { maxAge: 60000 }
}))

// 登录接口
app.post('/login', (req, res) => {
  const username = req.body.username
  const password = req.body.password

  // TODO: 验证用户名和密码是否正确,这里省略代码...

  // 设置 session
  req.session.username = username

  // 返回登录成功信息
  res.status(200).send('登录成功!')
})

app.listen(3000, () => {
  console.log('Server is running on port 3000')
})

Kod hadapan:

<form>
  <input type="text" name="username">
  <input type="password" name="password">
  <button type="button" onclick="login()">登录</button>
</form>

<script>
function login() {
  // 获取用户名和密码
  const username = document.getElementsByName('username')[0].value
  const password = document.getElementsByName('password')[0].value

  // 发送登录请求
  const xhr = new XMLHttpRequest()
  xhr.open('POST', '/login', true)
  xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4 && xhr.status === 200) {
      alert(xhr.responseText)
    }
  }
  xhr.send(`username=${username}&password=${password}`)
}
</script>

2. Pelaksanaan lompat halaman

Selepas pengguna berjaya log masuk, kami perlu lompat pengguna ke halaman selepas log masuk berjaya. Kunci untuk mencapai lompatan halaman ialah mengubah hala permintaan pengguna ke URL yang ditentukan. Node.js menyediakan kaedah res.redirect() untuk melaksanakan lompatan halaman. Berikut ialah contoh kod untuk melaksanakan lompat halaman:

// 需要登录才能访问的页面
app.get('/secret', (req, res) => {
  // 如果用户未登录,重定向到登录页
  if (!req.session.username) {
    res.redirect('/login.html')
    return
  }

  // 如果用户已登录,返回页面内容
  res.send('这是一篇需要登录才能访问的文章。')
})

Dalam kod di atas, kami menggunakan req.session untuk menentukan sama ada pengguna telah log masuk. Jika pengguna tidak log masuk, gunakan res.redirect() untuk mengubah hala ke halaman log masuk.

Selain itu, dalam Node.js, akses kepada fail statik (seperti HTML, CSS, JS dan fail lain) memerlukan penggunaan perisian tengah express.static(). Letakkan fail statik dalam direktori awam, dan kemudian gunakan kod berikut untuk memulakan aplikasi:

app.use(express.static('public'))

app.listen(3000, () => {
  console.log('Server is running on port 3000')
})

Supaya pengguna boleh mengakses http://localhost:3000/login.html dan http://localhost: 3000/rahsia Tunggu alamat untuk mengakses fail statik dan halaman dinamik.

Ringkasan

Melaksanakan fungsi log masuk dan lompat halaman dalam Node.js memerlukan pengesahan, sesi, pengalihan dan teknologi lain. Antaranya, mengesahkan sama ada nama pengguna dan kata laluan pengguna adalah betul adalah kunci untuk merealisasikan fungsi log masuk menggunakan sesi untuk menyimpan status log masuk pengguna untuk menentukan sama ada pengguna telah log masuk menggunakan kaedah res.redirect() untuk; melaksanakan lompatan halaman. Dalam pembangunan sebenar, penambahbaikan dan penambahbaikan yang sewajarnya perlu dilakukan mengikut keperluan tertentu.

Atas ialah kandungan terperinci nodejs log masuk lompat halaman lompat halaman lompat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn