[ Laravel 从入门到精通 ] Laravel 路由分组规则:中间件、子域名、路由前缀和命名空间

常言道「物以类聚,人以群分」,同样,在日常开发中,我们通常会将具有某些共同特征的路由进行分组,这些特征包括是否需要认证、是否具有共同的路由前缀或者子域名、以及是否具有相同的控制器命名空间等,显然,对路由按照共同特征进行分组后可以避免重复为某些路由定义相同的路由特征,让代码更加简洁,可读性和可维护性更好。 所谓路由分组,其实就是通过 Route::group 将几个路由聚合到一起,然后给...

[ Laravel 5.7 文档 ] 安全系列 —— 邮箱验证

简介 很多 Web 应用都要求用户注册之后验证邮箱地址才能登录,为此,Laravel 也提供了便捷方法来发送和验证邮箱验证请求,但是这个功能是可选的,你可以启用也可以不启用。 数据库配置 注:如果要使用邮箱验证功能,需要让 App\User 模型类实现 Illuminate\Contracts\Auth\MustVerifyEmail 接口。 邮箱验证字段 接下来,users 表必须...

[ Laravel 5.7 文档 ] 安全系列 —— 授权

简介 除了提供开箱即用的认证服务之外,Laravel 还提供了一个简单的方式来管理授权逻辑以便控制对资源的访问权限。和认证一样,在 Laravel 中实现授权很简单,主要有两种方式:Gate 和 Policy。 可以将 Gate 和 Policy 分别看作路由和控制器,Gate 提供了简单的基于闭包的方式进行授权,而 Policy 和控制器一样,对特定模型或资源上的复杂授权逻辑进行分组,...

[ Laravel 5.7 文档 ] 安全系列 —— API 认证(Passport)

简介 Laravel 通过传统的登录表单已经让用户认证变得很简单,但是 API 认证怎么实现?API 通常使用令牌(token)进行认证并且在请求之间不维护会话(Session)状态。Laravel 官方扩展包 Laravel Passport 让 API 认证变得轻而易举,Passport 基于 Alex Bilbie 维护的 League OAuth2 server,可以在数分钟内为...

[ Laravel 5.7 文档 ] 基础组件 —— 控制器

简介 我们之前的演示示例都是将所有的请求处理逻辑放在路由文件的闭包函数中,这显然是不合理的,我们需要使用控制器类组织管理相对复杂的业务逻辑处理。控制器用于将相关的 HTTP 请求封装到一个类中进行处理,这些控制器类存放在 app/Http/Controllers 目录下。 控制器入门 定义控制器 下面是一个基本控制器类的例子。首先我们使用 Artisan 命令快速创建一个控制器: php...

[ Laravel 5.7 文档 ] 基础组件 —— CSRF 保护

简介 跨站请求伪造(CSRF)是一种通过伪装授权用户的请求来攻击授信网站的恶意漏洞。 Laravel 通过自带的 CSRF 保护中间件让避免应用遭到跨站请求伪造攻击变得简单:Laravel 会自动为每一个被应用管理的有效用户会话生成一个 CSRF “令牌”,然后将该令牌存放在 Session 中,该令牌用于验证授权用户和发起请求者是否是同一个人。 任何时候在 Laravel 应用中定义 ...

[ Laravel 5.7 文档 ] 基础组件 —— 中间件

简介 中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制。例如,Laravel 内置了一个中间件来验证用户是否经过认证(如登录),如果用户没有经过认证,中间件会将用户重定向到登录页面,而如果用户已经经过认证,中间件就会允许请求继续往前进入下一步操作。 当然,除了认证之外,中间件还可以被用来处理很多其它任务。比如:CORS 中间件可以用于为离开站点的响应添加合适的头(跨域);日志中...

[ Laravel 5.7 文档 ] 基础组件 —— 路由

路由入门 最基本的 Laravel 路由只接收一个 URI 和一个闭包,并以此为基础提供一个非常简单优雅的路由定义方法: Route::get('hello', function () { return 'Hello, Welcome to LaravelAcademy.org'; }); 我们以在安装配置文档中新建的 blog 应用为例,在 routes/web.php 中定义...

基于 Laravel + Vue 构建 API 驱动的 LBS 应用系列教程(三) —— 安装配置 Laravel Passport

早在 Laravel 5.3 中就已经引入了 Laravel Passport(详情查看相关文档),如果你还没有用过它,实在让人难以置信,通过 Laravel Passport,你可以在几分钟内搭建起一个功能完备的 OAuth 服务器,用户可以像 Github、微信、QQ、Google 那样基于你提供的 OAuth 服务登录到不同的 Web 服务。不过,我们的目标是不同设备通过同一个入口...