[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 基于 CAS 实现通用的单点登录解决方案(三):用户单点退出实现

前面两篇教程学院君陆续介绍了 CAS 单点登录实现原理,CAS Server 及 Client 环境搭建和单点登录流程演示,这篇教程我们简单来介绍下 CAS 单点退出实现。 原理概述 基于 CAS 单点登录系统的退出主要包含两个部分: CAS 客户端应用的退出 CAS 服务端退出登录状态 我们在 CAS 客户端应用退出后将页面重定向到服务端退出登录状态,然后通过传递过去的回跳地址跳转...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 基于 CAS 实现通用的单点登录解决方案(二):CAS 客户端搭建及单点登录测试

上篇教程学院君给大家介绍了 CAS 单点登录原理以及 CAS Server 端搭建,这篇教程我们书接上篇,着手客户端测试应用搭建和完整单点登录流程演示。 客户端配置 首先我们创建两个用于单点登录测试的客户端 Web 应用 testapp 和 otherapp(如果对应应用之前已经存在,则无需重复创建),下面我们以 testapp 为例,进行初始化配置和演示,otherapp 依葫芦画瓢即...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 基于 CAS 实现通用的单点登录解决方案(一):CAS 原理及服务端搭建

什么是 CAS 上篇教程我们介绍了单点登录,以及如何基于 Cookie 实现简单的单点登录,这篇教程,我们将基于 CAS 实现更加通用的单点登录解决方案,不再受域名约束。 CAS(Central Authentication Service)是耶鲁大学的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方案。采用 CAS 最大的因素是从安全性角度来考虑,用户在 CAS 服务...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 通过 Cookie 实现基于 Session 的单点登录

单点登录及实现思路 单点登录(Single Sign On),简称为 SSO,意思是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的其它应用系统。一般常用于同一家公司的不同子系统之间的登录认证。 单点登录有多种实现方式,这里我们只介绍两种,一种是基于 Cookie 凭证,这种方式适用于子系统之间主域名一致,因为只有这样才能让不同子系统之间共享 Cookie;另一种是通过 CA...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 通过监听注册登录、邮箱验证事件实现简单的积分功能

如果你的网站有积分功能,往往会给新注册激活的用户一定的初始积分,每日签到/登录积分奖励等,在 Laravel 框架驱动的应用中,我们可以通过监听相应的事件来设置用户积分,下面我们就来简单演示其实现过程,并以此为例介绍用户注册登录事件监听及处理。 用户注册、登录和邮箱验证事件类 Laravel 框架底层已经提供,我们只需要通过事件监听器或订阅者来监听处理这些事件即可。 注:关于事件类的定...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 通过 Laravel 内置脚手架快速实现邮箱验证功能

之前我们陆续介绍了基于 Web 路由和 API 路由的各种认证实现,在 Laravel 5.7 框架中还内置支持了邮箱验证功能,邮箱验证从一定程度上损耗了用户体验,需要用户验证注册邮箱后才能访问认证路由,但是可以有效避免垃圾用户,从长期来看对系统生态来说是利大于弊的。下面我们就 Laravel 框架内置的邮箱验证功能演示下如何使用。 路由配置 首先,在 routes/web.php 路由...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 通过 Passport 实现 API 请求认证:令牌作用域详解

通过前面几篇教程,学院君给大家完整介绍了 API 认证的各种实现方式,你应该可以总结出一个规律:API 接口认证归根结底其实就是获取授权令牌,然后在请求中带上这个令牌对认证接口进行访问的过程,不同的实现方式其实就是获取令牌的方式不同而已,后面都是一样的。 除此之外,在认证过程中,有时候我们还需要对令牌的授权作用域进行限制,不是认证接口的所有返回数据都可以通过该令牌进行访问,或者不是所有接...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 通过 Passport 实现 API 请求认证:隐式授权令牌

后端系统设置 隐式授权令牌和通过授权码获取令牌有点类似,不过,它不需要获取授权码,就可以将令牌返回给客户端,通常适用于同一个公司自有系统之间的认证,尤其是客户端应用不能安全存储令牌信息的时候。 要启用该授权,需要在后端系统 AuthServiceProvider 的 boot 方法中调用 enableImplicitGrant 方法: public function boot() { ...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 通过 Passport 实现 API 请求认证:沙箱测试篇(私人访问令牌)

还有一种获取访问令牌的方式叫做私人访问令牌。这种授权方式比较特殊,不需要授权码,也不需要用户输入登录凭证,而是用户给自己颁发访问令牌。这种授权方式在用户测试、体验平台提供的认证 API 接口时非常方便,比如微信开放平台和支付宝开发平台都有沙箱测试模式,在这种测试模式下获取授权令牌的方式其实就是通过私人访问令牌来实现的。 下面我们就来简单演示下如何使用私人访问令牌获取令牌访问认证 API。...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 通过 Passport 实现 API 请求认证:开放平台篇(客户端凭证令牌)

前面两篇教程我们陆续介绍了通过密码授权获取令牌和通过授权码获取令牌访问需要认证的 API 接口,这篇教程我们来介绍第三种通过授权获取令牌的方式 —— 客户端凭证令牌。这种授权方式不需要走典型的登录或授权重定向流程,适用于机器与机器之间的接口认证,类似我们做微信、微博、支付宝开放平台开发,需要先申请自己的应用,申请通过后,这些开放平台会给我们分配对应的 APP ID 和 APP SECRE...