最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

koa-passport實現(xiàn)本地驗證的方法示例

 更新時間:2020年02月20日 10:04:26   作者:蘇荷酒吧  
這篇文章主要介紹了koa-passport實現(xiàn)本地驗證的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

安裝

yarn add koa-passport passport-local

先看下passport.js登錄策略,判斷用戶和密碼

const passport = require('koa-passport')
const LocalStrategy = require('passport-local').Strategy
const User = require('../../dbs/models/users')

passport.use(new LocalStrategy((username, password, done) => {
 User.findOne({username}, (err, user) => {
  if (err) return done(err)
  if (!user) return done(null, false, {message: '用戶不存在'})
  if (user.password !== password) return done(null, false, {message: '密碼錯誤'})
  return done(null, user)
 })
}))

passport.serializeUser((user, done) => {
 done(null, user)
})

passport.deserializeUser((user, done) => {
 done(null, user)
})

module.exports = passport

在入口中掛載passport

app.use(passport.initialize())
app.use(passport.session())

這時候passport策略配置完成

登錄接口實現(xiàn)

router.post('/signin', async ctx => {
 return Passport.authenticate('local', (err, user, info, status) => {
  if (err) {
   ctx.body = {
    code:-1,
    msg:err
   }
  }else {
   if (user) {
    ctx.body = {
     code:0,
     msg:'登錄成功',
     user
    }
    return ctx.login(user)
   } else {
    ctx.body = {
     code:1,
     msg:info
    }
   }
  }
 })(ctx)
})

用戶是否登錄

router.get('/getUser', async ctx => {
 if (ctx.isAuthenticated()){
  const {username, email} = ctx.session.passport.user
  ctx.body = {
   username,
   email
  }
 } else {
  ctx.body = {
   username: '',
   email: ''
  }
 }
})

用戶退出

router.get('/exit', async ctx => {
 await ctx.logout()
 if (!ctx.isAuthenticated()) {
  ctx.body = {
   code:0
  }
 } else {
  ctx.body = {
   code:-1
  }
 }
})

分析

通過passport.serializeUser函數(shù)定義序列化操作,調用ctx.login()會觸發(fā)序列化操作

通過passport.deserializeUser函數(shù)定義反序列化操作,在session中如果存在passport:{user:'Susan'}會觸發(fā)反序列化操作

通過passport.use(new LocalStrategy('local', ...)) 注冊策略,調用passport.authenticate('local',...)調用策略

app.use(passport.initialize()) 會在ctx掛載以下方法

  ctx.state.user 認證用戶

  ctx.login(user) 登錄用戶

  ctx.logout() 用戶退出登錄

  ctx.isAuthenticated() 判斷是否認證

到此這篇關于koa-passport實現(xiàn)本地驗證的方法示例的文章就介紹到這了,更多相關koa-passport 本地驗證內容請搜素腳本之家以前的文章或下面相關文章,希望大家以后多多支持腳本之家!

相關文章

  • node中npm ERR! network ‘proxy‘ 配置問題解決

    node中npm ERR! network ‘proxy‘ 配置問題解決

    在進行npm依賴管理時,可能會遇到因網絡配置不當導致的錯誤,如npm ERR! network proxy config is set properly,下面就來介紹一下,感興趣的可以了解一下
    2024-09-09
  • nodejs中使用archive壓縮文件的實現(xiàn)代碼

    nodejs中使用archive壓縮文件的實現(xiàn)代碼

    這篇文章主要介紹了nodejs中使用archive壓縮文件的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • NodeJS整合銀聯(lián)網關支付(DEMO)

    NodeJS整合銀聯(lián)網關支付(DEMO)

    這篇文章主要介紹了NodeJS整合銀聯(lián)網關支付DEMO的相關資料非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • 簡單模擬node.js中require的加載機制

    簡單模擬node.js中require的加載機制

    大家都知道Node 采用的模塊化結構是按照 CommonJS 規(guī)范,模塊與文件是一一對應關系,即加載一個模塊,實際上就是加載對應的一個模塊文件。這篇文章顯示簡單的介紹了nodejs中require的加載機制,而后簡單的模擬require函數(shù),有需要的朋友們下面來一起看看吧。
    2016-10-10
  • node.js入門教程

    node.js入門教程

    這篇文章主要介紹了node.js入門教程,講解了node.js在linux和windows下的安裝,模塊的概念,NPM的使用等等,是一篇不錯的nodejs入門文章,需要的朋友可以參考下
    2014-06-06
  • 配置Node.js環(huán)境變量詳細圖文教程

    配置Node.js環(huán)境變量詳細圖文教程

    這篇文章主要給大家介紹了關于配置Node.js環(huán)境變量詳細圖文教程的相關資料,在Node.js中設置環(huán)境變量非常簡單,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • nodejs基礎之buffer緩沖區(qū)用法分析

    nodejs基礎之buffer緩沖區(qū)用法分析

    這篇文章主要介紹了nodejs基礎之buffer緩沖區(qū)用法,結合實例形式分析了buffer緩沖區(qū)的概念、功能、創(chuàng)建、讀寫等相關操作技巧,需要的朋友可以參考下
    2018-12-12
  • 快速使用node.js進行web開發(fā)詳解

    快速使用node.js進行web開發(fā)詳解

    本篇文章主要介紹了快速使用node.js進行web開發(fā)詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • node.js中的fs.lchown方法使用說明

    node.js中的fs.lchown方法使用說明

    這篇文章主要介紹了node.js中的fs.lchown方法使用說明,本文介紹了fs.lchown的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • React和Node.js快速上傳進度條功能實現(xiàn)

    React和Node.js快速上傳進度條功能實現(xiàn)

    這篇文章主要為大家介紹了React和Node.js快速上傳進度條功能實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論

呼伦贝尔市| 绥宁县| 游戏| 孝昌县| 灵寿县| 丹江口市| 靖远县| 宜川县| 岳西县| 军事| 托克托县| 唐山市| 碌曲县| 浑源县| 翼城县| 阿克| 洞口县| 满城县| 定州市| 子洲县| 安化县| 新巴尔虎左旗| 合水县| 佛冈县| 集贤县| 蒙自县| 射洪县| 苗栗县| 西充县| 交口县| 霍林郭勒市| 沅江市| 合阳县| 云阳县| 靖边县| 个旧市| 凤翔县| 安平县| 汉沽区| 蒙阴县| 鄂温|