Реакция: setCook ie hook не устанавливает куки - PullRequest
0 голосов
/ 11 января 2020

Я пытаюсь интегрировать Auth0 в мой SPA. Я встраиваю функцию блокировки, поэтому она сама выполняет аутентификацию.

Я могу войти в систему, и функция блокировки работает нормально, однако я пытаюсь сохранить accessToken и idToken, возвращенные Замок повару ie. Для этого я использую react-cookie.

Это мой код:

import React, { useEffect } from "react";
import Auth0Lock from "auth0-lock";
import AUTH_CONFIG from "../../config/auth0";
import moment from "moment";
import { useCookies } from "react-cookie";
import history from "../../utils/history";

export default function Lock() {
    const [cookies, setCookie] = useCookies(["token"]);

    const lock = new Auth0Lock(AUTH_CONFIG.clientId, AUTH_CONFIG.domain, {
        auth: {
            responseType: "token id_token",
            sso: false
        },
        container: AUTH_CONFIG.container,
        theme: {
            primaryColor: "#3a99d8"
        }
    });

    useEffect(() => {
        if (cookies.token && cookies.token.expires < moment()._d) {
            history.push("/");
        }
        lock.show();
    }, [cookies]);

    lock.on("authenticated", authResult => {
        let expiresAt = moment(
            authResult.expiresIn * 1000 + new Date().getTime()
        );
        setCookie(
            "token",
            {
                access_token: authResult.accessToken,
                id_token: authResult.idToken
            },
            { path: "/", expires: expiresAt._d, secure: true }
        );
    });

    return (
        <div>
            <div id={AUTH_CONFIG.container} style={{ marginTop: "32px" }} />
        </div>
    );
}

Итак, после аутентификации вызывается прослушиватель событий lock.on. Я вижу, что он работает нормально, однако крючок setCookie не спасает повара ie. Я уже console.log(authResult) и могу подтвердить, что он возвращает соответствующие значения, но setCookie ничего не сохраняет. Исследуя хранилище моего браузера, я вижу, что ни один повар ie не сохранен.

Кто-нибудь знает, почему он не сохраняет token повар ie?

Спасибо заранее

Редактировать: Я нашел проблему. Я устанавливал secure: true, однако пытался получить к нему доступ через http://localhost, что небезопасно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...