在没有存储令牌的情况下如何保持会话

时间:2018-10-22 01:48:17

标签: javascript reactjs facebook session cookies

会话和cookie这个术语对我来说是全新的,我想了解如何在不做任何事情的情况下保存和存储会话。

通常,当我在某家初创公司担任实习生时,我们曾经生成访问令牌,并将那些访问令牌传递到标头中以检查路由(测试和访问令牌用于管理路由)

现在,我制作了一个简单的react应用,该应用通过react-facebook-login

使用Facebook登录
 fbLogin = <FacebookLogin
            appId="19726286382204"
            autoLoad={true}
            fields="name,email,picture"
            onClick={this.componentClicked}
            callback={this.responseFacebook} 
            render={renderProps => (

                <p onClick={renderProps.onClick} className="facebook-p"><a> <i class="fab fa-facebook-f"></i> Continue with Facebook </a> </p>
              )}/>

我将来自Facebook的响应存储在还原状态

responseFacebook = (response) => {

    this.props.name(response.name)
    this.props.email(response.email)
    this.props.LoggedIn(true)
    this.props.picture(response.picture.data.url)
    this.props.userID(response.userID)
}

然后我关闭了浏览器(强制退出)并重新打开了页面,转到我的应用程序以意识到我仍在登录,而我希望自己退出。

有人可以解释一下它是如何工作的吗?

1 个答案:

答案 0 :(得分:0)

您仍处于登录状态,因为您仍将会话令牌存储在cookie中,并且当您从服务器请求页面时,浏览器会自动发送它。该令牌在响应登录时到达该位置,并一直保持在那里直到被删除。

当您“注销”将会话令牌放入cookie的网站时,您要做的部分工作就是删除本地cookie以防止这种情况发生。

此处的更多信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies

在Chrome中,您可以在开发人员工具的“应用程序->存储-> Cookies”下看到存储在浏览器中的cookie。