动态iframe丢失PHPSESSID cookie

时间:2018-11-20 10:42:55

标签: php reactjs iframe graphql apollo

我有一个在节点代理后面运行的站点。该站点的一部分使用 react-apollo 库的<Query>加载数据。由于某些原因,每当我刷新页面时, PHPSESSID cookie都不会维护,并且每次都会更改。但是,如果我将RightPanel组件放在<Query>标记之外,则会保持会话状态。

请帮助

<Query query={GQL_CURRENT_USER}>
                    {({ loading, error, data }) => {
                        if (loading) return <div>Chargement...</div>;
                        if (error) return <div>Erreur...</div>;

                        // user not exist or problem fetching
                        if (data.User === null) return <div>Error while loading user.</div>

                        return (
                            <div className="main-container">
                                <UserContext.Provider value={{
                                    currentUser: data.User,
                                    currentStructure
                                }}>
                                    <RightPanel />
                                </UserContext.Provider>
                            </div>
                        )
                    }}
                </Query>

RightPanel内部,动态加载iframe

    return (
        <main className={classes.root}>
            <div className={classes.container}>
                <Switch>
                    <Route exact path="/">
                        <Redirect to="/user/suivi" />
                    </Route>       
                    <Route render={() => {
                        const hash = window.location.hash.substr(2).split("/");
                        return <LegacyView path={hash}></LegacyView>
                    }}>
                    </Route>
                </Switch>
            </div>
        </main>
    )

LegacyView渲染

render() {
        return <iframe ref={this.iframe} onLoad={() => this.frameLoaded()} styleName="LegacyView" src={`${LegacyView.BASE_URL}${this.state.url}`} />
    }

0 个答案:

没有答案