• 登陆状态的保持
    • 简单版: 使用cookie
    • 使用Vuex
    • 移动端的H5要保存哪些信息?

    登陆状态的保持

    如何判断当前用户是否登录呢?

    对于经典的web开发(后台开发), 都是使用当前用户的session。 把登录信息保存进去,每次需要的时候读取就可以了。

    对于前端,从理论上讲有两种方式:

    1. 读取cookie (适合所有h5框架)
    2. 读取vuex (适合Vuejs)

    下面我们分别来说一下。

    cookie是明文存储。 可以直接调用 document.cookie 来实现。 例如, 打开浏览器的console,

    输入:

    document.cookie

    返回:

    1. "TY_SESSION_ID=fad74371-40d1-444b-9d1c-5dd33c086b20; uuid_tt_dd=10_37220323210-1535781572649-914811; dc_session_id=10_1535781572649.670168; Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac=1535781569,1535873915; dc_tos=pef3wv; Hm_lpvt_6bcd52f51e9b3dce32bec4a3997715ac=1535873935"

    里面有哪些内容一目了然。

    所以,从安全性的角度讲,用户的登录信息容易被人弄走。

    使用Vuex

    Vuex 虽然不好上手,但是一旦熟悉了它的写法,还是很容易的。 工作量两者差不多。

    另外, Vuex的存储虽然是使用了Cookie , 但是会对很多信息进行封装和作用域的判断。 就算被人拿到, 也不会轻易的泄露信息。

    保存信息:

    1. store.dispatch(SET_BASEINFO, this.user_info)

    读取信息:

    1. store.state.userInfo

    对于Vuex的代码细节, 请看前一节 .

    移动端的H5要保存哪些信息?

    1. 保存的越少越好。 一个唯一的用户标识就好了。
    2. 不要泄露数据库的情况。

    差的例子:

    ‘xiao_wang_user_id’, 这个不用猜, 被人一读, 就会大概估计到,是小王的用户id‘140’, 嗯。 好的。 当前用户在数据库中的id是140 。 下一个用户肯定是141号了。

    好的例子:

    ‘a1b2c3d4e5f6’ , 微信的open_id 就是这样的。 不给黑客任何机会。