【问题标题】:Store Laravel Passport access token in a cookie将 Laravel Passport 访问令牌存储在 cookie 中
【发布时间】:2019-02-14 00:41:31
【问题描述】:

将访问令牌存储在 cookie 中是否安全?

我查过了,即使你有访问令牌,如果你没有正确登录,你也会得到一个401。

每次用户登录时,访问令牌都会改变(我正在改变它)。

cookie 在退出或超时时被销毁(基于 rememberme 选项)。

我是否应该将它存储在其他地方?去哪儿?

【问题讨论】:

  • 这并不能真正回答您的问题,但它可以为您提供另一种方法。 Laravel Passport 内置了对 consuming an API with a Javascript application 的支持
  • 感谢您的回答 - 但是,我已经有了它,但它不起作用。我必须手动将令牌存储在 cookie 中并在授权标头中使用它:Bearer + accesstoken
  • 你得到答案了吗?你是怎么做到的?我想将令牌保存在 cookie 中,而不是本地存储中

标签: laravel cookies access-token laravel-passport


【解决方案1】:

是的,它是安全的,但您仍然需要在路由上添加中间件

在我们使用 JWT AUth 之前,这是我们在登录页面前端的解决方案

axios({method: 'post', 
      data: {email: this.email.trim(), 
             password: this.password}, 
             url: '/api/login'})
.then(res => {

    if (res.data.success) {

      // Sets the Cookie Expiration Time to 1 Hour same as JWT Token on the Backend
      var now = new Date();
      now.setTime(now.getTime() + 1 * 3600 * 1000);
      document.cookie = "ut=" + res.data.data.type;
      document.cookie = "api_token=" + res.data.data.token;
      document.cookie = "expires=" + now.toUTCString() + ";"

      // Redirect to a new URL, or do something on success
       window.location.href = "/dashboard";
    }

}).catch(function (error) {
  //error 
});

有什么建议吗?

【讨论】:

    猜你喜欢
    • 2018-11-10
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 2018-06-02
    • 2019-06-09
    • 2017-05-23
    • 2018-04-23
    • 1970-01-01
    相关资源
    最近更新 更多