php – Laravel 4 – 如何为从移动应用程序访问的REST API实现自定义身份验证提供程序?

前端之家收集整理的这篇文章主要介绍了php – Laravel 4 – 如何为从移动应用程序访问的REST API实现自定义身份验证提供程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Laravel 4构建REST API.可以从移动应用程序访问此API.我想扩展Laravel内置的身份验证服务以使用令牌.

移动应用程序将@R_301_359@的API调用到端点用户/登录.

然后,它会生成一个新令牌,并将其插入令牌表中以获取相应的用户ID.请参阅下面的令牌表的结构:

id | userId | token | created_at | updated_at | expires_at

我想编写一个Authentification Provider来覆盖retrieveByID,retrieveByCredentials和validateCredentials函数.

这使移动应用程序可以在其标头中使用令牌调用任何API方法,但不使用任何用户凭据.

我使用HTTP在本地构建它,但它将是HTTPS.

我按照不同的教程编写了retrieveByCredentials函数,如下所示:

public function retrieveByCredentials(array $credentials) {

    $token = token::where('token','=',$credentials['token'])->take(1)->get();
    if ($token) {
        $user = User::where('user',$token->userId)->get();
        return new GenericUser($user);
    }
    else {
        return false;
    }

}

我宣布了

use token;
use user;

在我的AuthUserProvider类的开头,但我想这不是这样做的方法.

代码返回:

Undefined property: Illuminate\Database\Eloquent\Collection::$userId

我猜想的是,如何在这个类中访问我的模型,以便我可以检索用户并验证令牌.你能帮忙吗?

解决方法

实现自定义身份验证是重新邀请轮子.我决定使用OAuth 2.0软件包,https://github.com/lucadegasperi/oauth2-server-laravel并且可以使其满足我的需求

猜你在找的Laravel相关文章