猿问

Hapi身份验证Cookie设置,但request.auth.credentials为null

我已阅读hapi-auth-cookie的文档以尝试在我的网站中进行验证。


Cookie设置好了,我可以在其中看到它 chrome browser dev tools application tab


但是,当我console.log时request.auth.credentials,结果为null


我要完成的操作是将用户限制为http:// localhost:3000 / restricted,我认为缺少的链接是request.auth.credentials因为它为null


这是我的代码


const users = [

    {

        username: 'john',

        password: '$2b$10$nrkw6Mco2j7YyBqZSWRAx.P3XEZsZg3MNfma2ECO8rGMUTcF9gHO.',   // 'secret'

        name: 'John Doe',

        id: '2133d32a'

    }

];



await server.register(require('hapi-auth-cookie'));


    //strategy

    server.auth.strategy('session', 'cookie', {

        cookie: {

            name: 'sid-example',

            password: '!wsYhFA*C2U6nz=Bu^%A@^F#SF3&kSR6',

            isSecure: false

        },

        redirectTo: '/login',

        validateFunc: async (request, session) => {


            const account = await users.find(

                (user) => (user.id === session.id)

            );


            if (!account) {


                return { valid: false };

            }


            return { valid: true, credentials: account };

        }

    });



    server.auth.default({strategy: 'session', mode: 'try'});


   //login post

    server.route({

        method: 'POST',

        path: '/login',

        handler: async (request, h) => {


           console.log(request.payload)

            const { username, password } = request.payload;

            const account = users.find(

                (user) => user.username === username

            );


            if (!account || !(await Bcrypt.compare(password, users[0].password))) {

                console.log('user or password incorrect')

                return h.view('login');

            }


            request.cookieAuth.set({ id: users.id });

            console.log('login successful')

            return h.redirect().location("/")

         }

    })


我尝试将中的options.auth.mode“尝试”设置为“ try”,restricted route然后尝试将其options完全删除。


所有路由都工作正常,但是即使我登录也无法打开受限路由。


长风秋雁
浏览 246回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答