摘要:里面的驗證是基于和這兩個概念的。另一方面,是一個預先配置的命名的實例。注冊了一個插件該插件創建了一個命名為的。執行上述文件,訪問。在彈出的登錄框中輸入用戶名及密碼,頁面將展示如果報錯,可使用模塊替代,其余代碼無需改變。
hapi里面的Authentication(驗證)是基于scheme和strategies這兩個概念的。
你可以把scheme理解為一個通用型的驗證,是那種基礎的,概要的的描述。
另一方面,strategy是一個預先配置的、命名的scheme實例。
為了更好地理解hapi中的Authentication,請看下面這個示例:
"use strict"; const Bcrypt = require("bcrypt"); const Hapi = require("hapi"); const Basic = require("hapi-auth-basic"); const server = new Hapi.Server(); server.connection({ port: 3000 }); const users = { john: { username: "john", password: "$2a$10$iqJSHD.BGr0E2IxQwYgJmeP3NvhPrXAeLSaGCj6IR/XU5QtjVu5Tm", // "secret" name: "John Doe", id: "2133d32a" } }; const validate = function (request, username, password, callback) { const user = users[username]; if (!user) { return callback(null, false); } Bcrypt.compare(password, user.password, (err, isValid) => { callback(err, isValid, { id: user.id, name: user.name }); }); }; server.register(Basic, (err) => { if (err) { throw err; } server.auth.strategy("simple", "basic", { validateFunc: validate }); server.route({ method: "GET", path: "/", config: { auth: "simple", handler: function (request, reply) { reply("hello, " + request.auth.credentials.name); } } }); server.start((err) => { if (err) { throw err; } console.log("server running at: " + server.info.uri); }); });
上述代碼做了如下幾個操作:
定義了一個用戶數據信息,包括用戶名、密碼等信息。
定義了一個驗證函數,它是針對于hapi-auth-basic具體實現的一個功能,允許我們去驗證用戶提供給我們的憑證。
注冊了一個插件(hapi-auth-basic),該插件創建了一個命名為basic的scheme。
執行上述文件,訪問localhost:3000。在彈出的登錄框中輸入用戶名及密碼,頁面將展示:hello, John Doe
tip:如果npm install bcrypt報錯,可使用bcryptjs模塊替代bcrypt,其余代碼無需改變。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/82561.html
摘要:框架,用官網的簡介來說就是是構建應用程序和服務的豐富框架,它使開發人員能夠專注于編寫可重用的應用程序邏輯,而不是花時間構建基礎設施。用自己的話簡單來說,就是個類似,之類的服務基礎框架。同時全局環境直接獲取。 showImg(https://segmentfault.com/img/bVbrV3m?w=572&h=350); hapi框架,用官網的簡介來說就是:Hapi是構建應用程序和...
摘要:框架,用官網的簡介來說就是是構建應用程序和服務的豐富框架,它使開發人員能夠專注于編寫可重用的應用程序邏輯,而不是花時間構建基礎設施。用自己的話簡單來說,就是個類似,之類的服務基礎框架。 showImg(https://segmentfault.com/img/bVbrV3m?w=572&h=350); hapi框架,用官網的簡介來說就是:Hapi是構建應用程序和服務的豐富框架,它使開...
閱讀 3093·2023-04-26 00:53
閱讀 3544·2021-11-19 09:58
閱讀 1705·2021-09-29 09:35
閱讀 3302·2021-09-28 09:46
閱讀 3875·2021-09-22 15:38
閱讀 2700·2019-08-30 15:55
閱讀 3022·2019-08-23 14:10
閱讀 3837·2019-08-22 18:17