Nixus

3621 经验值

老师,视频中替换那个,替换后的结果好像是只有一个反斜杠 \

如果真的是这样,那确实是很鸡肋了!
后面还有 API Resource,感觉和这个 rule 是一样的套路,如果同一个模型,有多种不同的数据返回,还有错误信息返回,好像也是要针对每种创建一个 Resource 类,除非不去改 Resource 类中默认的 toArray 方法

你说的是多用户认证还是多表认证?

不知道该怎么去改,然后在TokenGuard.php中加了代码,

public function user()
 {
    if ( !is_null($this->user) ) {
        return $this->user;
    }

    $user = null;

    $token = $this->getTokenForRequest();

    if ( !empty($token) ) {
        $user = $this->provider->retrieveByCredentials(
            [$this->storageKey => $token]
        );
    }
    
    // 这个条件语句是自己加的
    if ( $user->expired_at->lt(Carbon::now()) ) {
        return collect(['Token has expired.']);
    }

    return $this->user = $user;
 }

虽然实现了 api_token 过期的效果,但是这样写,感觉很不好

老师,在使用 api_token 时,想给 token 加一个过期时间,查了很久,都没找到相关的内容,api_token 这块信息特别少
自己想了一下,在 api_token 所在的表中,加一个 expired_at 的字段,来标记过期时间,但是没还是没找到相关的资料,想去改源码,可惜没找到?

发现用最新的框架,并不是一个好的选择,各种坑。jwt 的,我也放弃了。这个教程,讲的已经非常详细了,按照教程 one by one,最后还是各种错误,然后看评论,再根据评论中的内容进行排错,OK,三天以来终于看到了 token 的样子了。
然后就在调数据的时候,又报错了,而且是个这样的错误:

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException

然后我就放弃了……继续尝试……

老师,刚看完 laravel api resource 确实很方便,有个疑问就是,用户身份验证这部分好像没有涉及到,但是 routes/api.php 中有一个路由的例子,是用 laravel 的 auth 验证吗?还是用 when 条件关联?如果是用 auth 的话,好像没办法使用 token 之类的,需要引入 oauth ?还是用 JWT ?

谢谢老师回复,这个真的很头大。
您的视频用的,dingo 出了2.0-alpha 了,好像略有差异

嗯,没有找到好的解决方案
有个想法就是,既然 laravel/passport 不支持多表,那么我就把 users 表作为一个关联表,这样,所以需要 API 身份认证的操作,我都丢到 users 表中做关联,是否可行呢?
会不会有什么风险?

想使用这个laravel/passport 做 API 的验证,按照教程配置完成后,发现只能在 user 模型中使用,如果是使用其它模型的话,就会提示这个错误:

BadMethodCallException
Method attempt does not exist.

后面搜了一下,发现了 laravel/passportissues中,有相应的处理了,于是就按照这个修改了laravel/passport的源码,但是依然报上面的错误,可能还有其它地方写死了 user 模型吧