node.js - Hapi js - 如何发送请求让服务器进行基本身份验证?

标签 node.js vue.js authorization backend hapi.js

我构建了一个nodejs和vuejs Web应用程序, 我从服务器加载 vue js dist 文件并渲染它们。 另外,我正在使用 hapi-auth-basic。现在我想在服务器和前端之间建立连接,但现在,它只向我显示一个带有基本字段的提示窗口,我想将身份验证过程嵌入到 vue 模板的登录表单中。那我该怎么办呢? 我只想执行与提示窗口中的场景后面调用相同的操作 出现。

await server.register([require('hapi-auth-basic'), require('inert')]);

server.auth.strategy('simple', 'basic', {
            key: privateKey, 
            validate: validate,
            // validate: validate 
        });

server.route({
            method: 'GET',
            path: '/{param*}',
            options: {
                auth: 'simple'
            },
            handler: {
                directory: {
                    path: '.',
                    redirectToSlash: true,
                    index: true,
                }
            }
        });

例如,在上面的路由中,会出现提示窗口。

最佳答案

ROUTES

 {
        method: 'GET',
        path: '/api/plumber/getHydrantJSON',
        options: {
            description: 'getHydrantJSON',
            auth :'HYDRA',
            tags: ['api', 'information'],
            handler: async (request, h)=> {
                return Controller.PlumberController.getHydrantJSON(request.query,request.auth.credentials)
                    .then(result =>{
                        return h.response(UniversalFunctions.sendSuccess(Config.APP_CONSTANTS.STATUS_MSG.SUCCESS.LOGIN, result));
                    })
                    .catch(reason =>{
                        return h.response(UniversalFunctions.sendError(reason));
                    })
            },
            validate: {
                query: {
                    skip:Joi.number(),
                    limit:Joi.number()
                },
                headers: UniversalFunctions.authorizationHeaderObj,
                failAction: UniversalFunctions.failActionFunction
            },
            plugins: {
                'hapi-swagger': {
                    payloadType: 'form'
                }
            }
        }
    }



 //authentication

exports.plugin = {
    name: 'auth',
    register: async (server, options) => {
        await server.register(require('hapi-auth-jwt2'));
        server.auth.strategy(
            'HYDRA',
            'jwt',
            {
                key          :  Config.APP_CONSTANTS.SERVER.JWT_SECRET_KEY,          //  Never Share your secret key
                validate     :  TokenManager.verifyToken,                           //   validate function defined above
                verifyOptions: { algorithms: [ 'HS256' ] }                         //    pick a strong algorithm
            });

       // server.auth.default('ADMIN');
    }
};

关于node.js - Hapi js - 如何发送请求让服务器进行基本身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52043553/

相关文章:

java - 在 wicket 中,结合 wicket :link with IAuthorizationStrategy

node.js - 在容器中运行挂载测试后, Istanbul 尔覆盖率未知

javascript - Node JS Sequelize如何统计关联数据

javascript - 在 Javascript 循环内没有得到正确的结果

javascript - 在 javascript、jquery 或 vue 中创建动态条件

asp.net-mvc - MVC RESTful 服务授权

node.js - Discord.js 音乐机器人 : TypeError: this. inputMedia.pipe 不是函数

javascript - 如何正确观察 Vuex 中的状态变化?

javascript - Vue 搜索过滤器复选框问题

java - Android 上的 HTTPS 身份验证