【问题标题】:Which Auth is usfull in Laravel / VueJS project?在 Laravel / VueJS 项目中哪个 Auth 是有用的?
【发布时间】:2021-04-23 14:43:01
【问题描述】:

我正在计划一个小项目,并且有一个关于身份验证的问题。我想用 Laravel 8 实现该站点。但是,一旦用户成功登录,他应该被定向到用户仪表板。用户仪表板应该是一个纯 VueJS 单页应用程序。

现在我的问题。我应该在这里使用哪个身份验证?整个站点的会话或令牌,还是既可能又有用?

例如,如果我使用令牌身份验证变体,那么我可以很好地保护 Vue 应用程序,但我无法访问 Vue 应用程序之外的用户信息。例如,用户当前的头像应该出现在导航栏中,不仅出现在 vue 应用中,还应该出现在登录页面、联系页面等上。

我该怎么做?最佳做法是什么,感谢您的帮助!

【问题讨论】:

  • 它的依赖站点是完整的单页应用程序还是该单页的一部分
  • @KamleshPaul 只有一个部分 - 用户仪表板
  • 然后使用seesion auth
  • @KamleshPaul。以及我如何保护提供 SPA 女巫用户数据的 api?
  • 如果路由受 sesssion 保护,您可以调用 api,只有您需要 csrf_token 用于 post req。你可以从 html

标签: laravel vue.js authentication


【解决方案1】:

使用基于令牌的身份验证系统。

通过这种方式,您将能够仅在前端管理整个应用程序 UI 和角色检查。我宁愿选择 JWT [https://jwt-auth.readthedocs.io/en/develop/laravel-installation/]。它易于使用,文档非常好。甚至 Lumen 也支持它。如果您希望在未来的应用程序中集成任何微服务,那么 Lumen 微服务中也可以使用它。

【讨论】:

  • 如果我会使用水疗中心,那么答案就可以了。但就我而言,我想在 vue 之外访问 auth()->user()。而且我无法使用基于令牌的身份验证来做到这一点!?还是我弄错了?
  • 然后,您可以尝试 Laravel “Sanctum” 包进行基于会话的身份验证。但唯一需要注意的是,它只有在 Vue.js 和 Laravel 应用程序运行在同一个基础源上时才能工作。为此,您必须在同一个应用程序存储库中维护 Vue.js 和 Laravel。圣所:“laravel.com/docs/8.x/sanctum”。参考资料库:“github.com/tridibdawn/Coffee-Shop-Laravel-Vue-SPA
  • 您可以从以下教程中获得帮助。链接:youtube.com/watch?v=eeMtmkDZ72Q 本教程讲解会话认证数据如何存储在cookie中。
  • 如果您认为我的回答对您的需求有帮助,请将此回答标记为正确。
  • 很遗憾,您的回答不适合我。正如我上面所写,我需要一个身份验证解决方案来保护我的 webroutes 和 api 路由。 Laravel Sanctum 适合 SPA,但不适合我的情况。
【解决方案2】:

使用基于令牌的身份验证 (Laravel 护照)

【讨论】:

  • 请补充解释为什么是解决方案?
  • 如果您使用 laravel (laravel ui) 安装 vuejs,那么最好使用基于会话的身份验证 (Laravel Sanctum)。但是在这里你使用了两种不同的方法,一种是 laravel,另一种是 vuejs。所以使用 laravel Passport 会很有帮助,而且很容易做到。
  • 我将尝试使用 JWT。 @HariShankarSingh:你对 JWT 做了什么?
  • @MaikLowrey 你也可以试试。
猜你喜欢
  • 2021-06-02
  • 2014-09-23
  • 2016-02-02
  • 2020-05-16
  • 2020-03-08
  • 1970-01-01
  • 2019-12-13
  • 1970-01-01
  • 2021-12-10
相关资源
最近更新 更多