【问题标题】:How can I access vue-cookies in a vuex store?如何在 vuex 商店中访问 vue-cookies?
【发布时间】:2019-08-19 14:28:31
【问题描述】:

在一个动作中,我正在做:

this.$cookies.set("token", response.token, "7d");
this.$cookies.set("UserId", response.UserId, "7d");

但是可惜$cookies 没有定义。

【问题讨论】:

    标签: vue.js vuex vue-cookies


    【解决方案1】:

    您可以安装 js-cookie 库,然后在 vuex 商店中访问这样的 cookie:

    import Cookies from 'js-cookie'
    
    const getters = {
      isLoggedIn: function (state) {
        return !!state.email && !!Cookies.get('access_token')
      }
    }
    

    【讨论】:

    • 我可以使用vue-cookies吗?
    • js-cookie 做了我需要vue-cookies 做的所有事情。在我的情况下,不需要在js-cookie 上实现vue-cookies
    【解决方案2】:

    你可以做(​​store.js

    import Vue from 'vue'
    
    ...
    
    someAction () {
        Vue.prototype.$cookies.set("token", response.token, "7d");
    }
    

    【讨论】:

    • 导入Vue有多合理?
    • @PavelLevin 我使用这种模式已经有一段时间了,还没有发现任何缺点。您可以在项目的任何地方安全地导入 Vue。捆绑时正确封装导入。
    【解决方案3】:

    在您的应用中使用vue-cookies

    在你的store.js,你可以

    import cookie from 'vue-cookies'
    
    .....
    
    action(){
       cookie.get('token');
    }
    

    【讨论】:

      【解决方案4】:

      永远不要让 JS 访问 JWT cookie。这为您打开了许多安全漏洞。接受的答案不应该被执行。

      仅对生产应用程序使用 http 和安全 cookie。如果您正在为生产而构建,请重新设计此部分

      【讨论】:

        猜你喜欢
        • 2021-10-20
        • 2018-12-19
        • 2021-09-24
        • 2020-12-07
        • 2020-08-25
        • 2019-08-18
        • 2017-12-05
        • 2021-12-05
        • 2017-12-18
        相关资源
        最近更新 更多