Laravel OAuth 2.0 X YouTube X bilibili

Laravel OAuth 2.0 X YouTube X bilibili

前言

前几天突然手机微信出现了条YouTube视频链接。如下:

https://www.youtube.com/watch?v=oJCImQWfCCM&list=PLC-R40l2hJfdyfZ3jkDKOcyoqmIgw2wda&index=2

打开一看,Build OAuth 2.0 SSO with PHP (Laravel 8)。近期一直在折腾基于php实现SSO,就点进去学习一波。

学习见解

看到第四个视频,结合相关知识自己理解了一下:

实际上就是laravel8中的官方扩展包,passport oauth里面的教程,采用的是OAuth2.0的授权码模式接下来我将做一些精华的笔记(废话+大白话)。实际上就是 https://www.bilibili.com/video/BV1ME411q7NA?p=8 印度版。。。(话说印度人挺好学的,就是口音太xxxx)
注意在生产环境下(不要采用视频的全写在路由,而是要像YouTube中的写在专门的控制器下,route要简洁!)lishen的视频讲的不错,实际上laravel是可以提供oauth服务的。在纯净版的环境下,serve端就是类似于微信授权。我们自己起来的client端相当于是第三方app(可以是bilibili),在bilibli弄个login,上面附有微信登入连接,连接则路由到我们的serve端的login,serve首先要login也就是(常见的点击确定微信登入),登入后就会到oaut/authorize也就是passport注册路由,那么会出现是否授权的页面(也就是确定微信登入后的是否授权)授权了url参数auth/callback+code+state ;如果按了取消没有授权就是error+state。他自己写了一个callback的相应页面来进行成功授权是否的不同逻辑。可以弹出拒接的框等。点击授权后会报错因为没有写get/token这个应该是laravel他自己csrf什么的问题,这个照抄文档就可以。主要问题在于laravel这种客户端要手动授权。。client 以及他的密码。

另:

Laravel Jetstream 除了提供基于浏览器的 Cookie 认证外,还内置集成了 Laravel Sanctum 提供 API 令牌认证。现在主要的问题在于,jetstream套件本身深不可测,自带sanctum,我现在又要使用passport这个api认证,理论上讲是没有问题,但是能否接入,问题还是很大的,而且目前市面上没有提供api认证后的退出demo,accesstoken也不是很全。而且我只能选择passport只有它能够提供oauth,这样一来要弃用jetstream中的sanctum,有得要重新搞懂内嵌在jetstream中sanctum,将其弃用转用passport这是个很大的问题。具体实现来说,复制一个mauth当做测试按照lishen的来进行安装passport看看会不会冲突,实际上只要mauth正常运行,新起一个客户端就是小问题。注意要好好看youtube上面新建的项目实际上就是lishen的,好好看看数据库里面字段的变化,测试环境需要把mauth的脚本先保存。

深入学习链接

https://laravelacademy.org/post/21991 用户认证小了解关于自定义模型 在其中搜AuthServiceProvider
https://laravelacademy.org/post/22035 oauth + passport详解讲的很好,在其中搜AuthServiceProvider


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!