【问题标题】:Authenticate session when calling api routes from ajax in frontend从前端的ajax调用api路由时验证会话
【发布时间】:2020-03-25 10:25:56
【问题描述】:

我有一个 Laravel 项目,我通过检查 request->wantsJson() 来确定要返回的内容,对 web 和 api 路由使用相同的控制器。我正在使用内置的Auth 进行网络路由。

在前端,我使用jQuery/ajax 来获取和发布数据,但我不确定如何在 ajax 调用中转发当前登录的用户,以便可以验证请求和当前用户已确定。

我想做的是在执行ajax 调用时在请求标头中附加某种临时的session 令牌,并通过middleware 将其作为用户进行身份验证。

推荐的方法是什么?

【问题讨论】:

  • 如果您对两个呼叫使用相同的 Web 路由,则无需发送令牌。 Auth::user() 应该能够检测您是否已登录,无论它是否是常规请求的 ajax

标签: ajax laravel api authentication session


【解决方案1】:

感谢蒂姆的提示,但由于我也计划为外部客户端访问 api,所以我想我需要一些令牌中间件。

我在所有 api 路由上使用 tymon/jwt-auth 解决了它并添加到我的用户类

公共函数 getToken(){ 返回 JWTAuth::fromUser($this); }

然后我只需将其添加到 ajax 调用的标题中

标题:{

'授权':Bearer {{auth()->user()->getToken()}}, “内容类型”:“应用程序/json”,
“接受”:“应用程序/json”
},

【讨论】:

    猜你喜欢
    • 2017-11-26
    • 2019-02-13
    • 2017-06-05
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 2012-09-29
    相关资源
    最近更新 更多