npm包彙總

koa-passport

密碼校驗
koa2 使用passport權限認證中間件

passport-local

// utils/passport.js

import passport from 'koa-passport'
import LocalStrategy from 'passport-local'
import UserModel from '../../dbs/models/users'

passport.use(new LocalStrategy(async (username, password, done) => {
  let where = {
    username
  }
  let result = await UserModel.findOne(where)
  if (result != null) {
    if (result.password === password) {
      // 用戶輸入密碼跟數據庫密碼一致
      return done(null, result)
    } else {
      return done(null, false, '密碼錯誤')
    }
  } else {
    return done(null, false, '用戶不存在')
  }
}))

// 用戶每次進來 自動通過session驗證
// 在每次請求時 會從session中讀取用戶對象  用戶通過驗證後serializeUser會將用戶數據存在session中
// 序列化
passport.serializeUser((user, done) => {
  done(null, user)
})
// 反序列化
passport.deserializeUser((user, done) => {
  done(null, user)
})

export default passport


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章