付费课程, 订阅后即可观看

Laravel API 接口开发

18 集视频
2小时13分钟

本期 Laravel 视频咱们学习一下如何实现用户登录API接口的实现,我们会使用到密码授权模式来获取用户的 access token,用户登录接口跟用户注册接口非常相似,用户注册接口通常也伴随着获取access token的过程。

running8 2019.04.15 00:45

我已经跟不上课程了。

国营 2019.04.15 01:04

这通常是心理因素导致的,欲速则不达,多点耐心,我之所以把API开发分解成这么多套视频一点点深入下去就是因为大部分人太着急了,OAuth2.0是一个坎儿,大部分开发者都没弄明白是怎么回事,只是照猫画虎看别人怎么写接口自己就怎么写接口。这个需要先把这个弄清楚,自己操作一遍,把数据表里哪个表是干什么的,哪个字段是干什么的弄明白,光靠看是不行的。我从API开发系列开始的确是引入了不少新东西,主要也是想让大家了解一下在REST架构下接口的良好规范是怎么回事,其实大部分小公司对此没有啥要求,按照让自己舒服的野路子来也没关系,我的原则是不管大厂的规范还是用野路子开发接口,大家都能吃的开。

国营 2019.04.15 01:10

迈过这道坎,你就能解决应用层开发的绝大部分问题了,努个劲用点心,就能扛过去了。咱们跑马拉松不也就是要挺过那几个关键的最难熬的阶段嘛,痛苦肯定得经历一下的。

张三丰 2019.06.11 16:31

老哥,我的oauthclient表生成之后没有数据。 client_id

client_secret,无法获取,怎么回事?

国营 2019.06.11 16:33

php artisan passport:install 运行了吗????学东西是个慢活儿,不要太着急,慢慢一步步按照步骤来

张三丰 2019.06.11 16:41

php artisan passport:install 已经运行了,

我的laravel版本是5.8,是否存在版本差异?

国营 2019.06.11 16:44

明天我试一下,应该没啥变化的,这套视频我用的也是5.8

张三丰 2019.06.11 16:53

多谢老哥,已经找到问题,在运行安装命令之前需要运行这个命令:php artisan passport:client

老师建个qq群吧,里面只加购买用户,老师的课程质量很高,购买很值得。

国营 2019.06.11 16:56

找到就好,不建群了,每个人好好管理好自己的时间做好自己的事就挺好,社交多了也没啥用。

张三丰 2019.06.11 17:57

老哥:我注册完毕,数据写入表成功了,但是获取token又失败了。

访问的接口:/oauth/token。

返回结果:

{

"error": "invalid_credentials",

"error_description": "The user credentials were incorrect.",

"message": "The user credentials were incorrect."

}

经过百度搜索:1.密码需要密文存储(本来就是bcrypt加密的,第二个说键名存在空格,)我检查完毕,均没有发现我又此问题,求助一下、

期待老哥天亮解答!

国营 2019.06.13 05:49

你先不要折腾API这部分的东西,先去把 OAuth2.0 的图文好好看一遍,这是最重要的东西,理论基础没打好的时候不要着急上手,不然跑通了也不明白到底怎么回事,再把接口授权的看一看,再来弄API这套课程。

张三丰 2019.06.11 18:29

raw格式向/oauth/token接口请求返回: { "error": "unsupported_grant_type", "error_description": "The authorization grant type is not supported by the authorization server.", "hint": "Check that all required parameters have been provided", "message": "The authorization grant type is not supported by the authorization server." }

form-data方式请求返回: { "error": "unsupported_grant_type", "error_description": "The authorization grant type is not supported by the authorization server.", "hint": "Check that all required parameters have been provided", "message": "The authorization grant type is not supported by the authorization server." }

我的请求参数(raw方式: { "grant_type":"password", "username":"张无忌2019", "password":"123456", "scope":"*", "client_id":"2", "client_secret":"dERuW80wUrwpLRrKXJGispVhxSWTglMYUSTTCU9n" }

国营 2019.06.13 05:35

你的用户名传入的东西不对,传入邮件地址,不要传入User Model的name字段里的东西,之前我看得不仔细,刚发现你传的东西不对。

国营 2019.06.13 05:50

“username”:“传email地址”

张三丰 2019.06.11 18:30

老哥,课程相关的代码能提供吗?我也很奇怪,为什么遇到这么多奇怪问题。

如果有课程代码的话,我先看代码差异。

我都是照着视频先写的

国营 2019.06.13 05:37

username对应的是唯一的标识字段,默认使用email里储存的信息

张三丰 2019.06.13 13:41

多谢老哥,username确实传递邮箱地址可以了,那么怎么自定义username和哪个字段进行验证呢?

国营 2019.06.13 13:42

你学东西真急躁,打好OAuth2基础,我视频里你关心的问题我都有录制

张三丰 2019.06.13 13:43

好的 谢谢了。。我先去学oauth的基础...谢谢了

张三丰 2019.06.12 17:55

老哥,能提供一下你的代码吗?

我的user用户添加成功了,木马存储是bcrpt加密后的,但是就是通过oauth/token 无法获取用户的token

一直提示:

{

"error": "invalid_credentials",

"error_description": "The user credentials were incorrect.",

"message": "The user credentials were incorrect."

}

国营 2019.06.12 23:05

你可以试着重新创建一个postman的请求,有的时候是它的锅,另外,你这睡觉时间也太晚了,调整一下吧

张三丰 2019.06.13 05:11

新建了,系统都重启了,还是这个问题。好悲伤

yuanhy 2019.08.09 10:05

站长,client_secret需要保密吗,是直接写在客户端,还是客户端向服务器请求获取client_secret

国营 2019.08.09 11:11

这个由客户端保存就行了,它只是一个基本凭证,用户的token是二级凭证

root_shell 2019.10.20 19:59

环境:Laravel Framework 6.3.0 PHP7.3.5 服务器:artian serve

疑问: Postman 使用token获取用户信息 /api/user 提示 {"message":"Unauthenticated."}

1. 在https://jwt.io/ 中 贴上token,并使用/storage 下的 公钥 和 私钥 解密,是OK的 2. 已确定 heard 添加了 [{"key":"Authorization","value":"Bearer{{token}}","description":"","type":"text","enabled":true}], 且设置了对应的token变量

问题已解决: 原因是 没有选择Authorization‘s Type : OAuth2.0 (希望能对其他兄弟有所帮助) 总结: 相关的工具还是要好好学习下,打好基础。 冒进可能花费的时间更多,理解也不深刻。

国营 2019.10.20 23:49

两天没看都 6.3 了,这世界变化太快了

boxer 2020.04.25 02:33

感谢! 顺利找到了解决方法。看来还是要看过一遍工具

nick 2020.05.14 01:25

评论还是解决了很多问题的;最后还有一个问题,我已经解决了,发给出来给大家看看。

我请求的地址不能加api,加api就会报错。不加api之后成功获取到了token

xiaosheng 2020.05.21 15:18

我按照视频来的,然后在postman中输入下面的值之后,什么也没有返回,这是什么情况啊?求指教下

{

"grant_type" : "password",

"username" : "xiaosheng@qq.com",

"password" : "123456",

"client_id" : "2",

"client_secret" : "T6PaqTBIeu3CVwPw16N0xgsNUs4AYfgZuTIy2tap",

"scope" : "*"

}

微信扫码登录