Web 和 Api 路由的 Laravel 身份验证问题

时间:2021-01-25 17:05:58

标签: php laravel vue.js authentication oauth

很遗憾,我找不到针对某个用户案例的解决方案,而这实际上必须经常发生。

为了更好地描述它,我把我的 laravelapp 的路由(web 和 api)的结构放在这里:

routes/web.php

get(start|products|product/{id}|contact|inprint|login|register)

get(checkout|checkout/(any))->middleware( auth ) // Checkout is a VUE App

routes/api.php

// only the Vue App use the api
get(user|user_orders|user_address) ->middleware( auth )
post (purchase_order) -> middleware(auth)

正如您可能看到的,我想保护网站的某些部分。此外,我想检查每个查询用户是否已登录,以便在导航栏中显示注销按钮。

  1. 这甚至可以通过身份验证系统实现吗?
  2. 是否可以使用基于令牌 (JWT) 的身份验证系统来保护网络路由?我一直认为不会。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

你可以反过来做。这将使您可以灵活地使用

在控制器中检查您的身份验证
Auth::check();

通过这些简单的步骤,您还可以检查 API 路由中的身份验证。因此,您还可以将 JWT 与身份验证网络路由一起集成。

你只需要添加

\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Session\Middleware\StartSession::class,

在您的“API”中间件组中

'api' => [
  \App\Http\Middleware\EncryptCookies::class,
  \Illuminate\Session\Middleware\StartSession::class,
  \\ existing code...
],

谢谢,