首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Laravel中将身份验证逻辑放在哪里?

在Laravel中将身份验证逻辑放在哪里?
EN

Stack Overflow用户
提问于 2014-09-02 14:30:57
回答 1查看 646关注 0票数 0

我使用本教程在Laravel:Laravel认证要点中创建了我的用户登录。因此,我有一个SessionController,它包含createstoredestroy方法,分别用于显示表单、登录和输出。

但是在本教程中没有模型,验证和Auth::attempt在控制器中。这感觉不太对。我无法创建Session模型,因为Session类已经存在。

我应该将登录/输出逻辑放在User模型中,还是有其他符合MVC体系结构模式的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-02 15:49:45

首先,记住(或知道)你可以改变拉拉维尔的一切。如果需要使用Session表的会话模型,请转到app/config/session.php,并将laravel_sessions表更改为laravel_sessions:

代码语言:javascript
运行
复制
'table' => 'laravel_sessions',

现在人们的做法不同了,方法每天都在改进,你做代码的方式必须适合你。如果你觉得你看到别人这样做是不对的,那就改变它,拉拉维尔给你力量去改变和做你自己的事情。如果你觉得你找到了一个更好的方法,分享它。

这是一段2013年的视频,今天杰弗里正在以一种完全不同的方式进行认证。注册一个乳突帐户,并采取完整的建造一个拉拉布克系列视频,看看他现在是如何做到这一点。

本教程中没有会话模型,因为他没有在会话表中存储会话(成功登录)。

在本教程中,他从不接触用户模型,因此在用户模型中没有登录。他唯一用于身份验证的是Auth::attempt(),这是一种Laravel方法,在内部使用用户模型(M)来查找用户并检查密码是否匹配。他正在使用会话控制器 (C),以及与登录(或登录)和显示登录视图( (V) )相关的所有内容都是在该特定控制器内完成的。

如果对您来说更容易,您可以将SessionsController重命名为LoginController,我本人并不真正喜欢会话的名称进行登录,但这只是品味问题,而不是代码正确性问题。

话虽如此,我在视频中并没有看到MVC (或者其他人本周喜欢叫它的名字)的问题。

编辑回答评论:

模型的目的是为了数据,没有数据,没有模型。在Laravel和一个数据库管理系统中,是的,没有表,没有模型。例如,在客户机服务器API的上下文中,您的服务器API (Laravel,Rails.)将为您的客户端模型提供数据(角,EmberJS.),因此,不会有与客户端模型直接相关的表,但仍然是一个模型。

但在这种情况下,您正在通过服务,身份验证服务访问模型,用户模型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25625899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档