antarccub/laravel-jwt-microservice

基于Laravel框架和JWT身份验证创建微服务的基项目

dev-master 2018-03-10 12:48 UTC

This package is not auto-updated.

Last update: 2024-09-23 16:26:48 UTC


README

这是一个使用Laravel框架作为JWT身份验证微服务的示例项目。

注意:此项目的目的是加速实现具有外部身份提供者的私有Laravel微服务的编码。

从请求中获取用户

class SendNotificationsController extends Controller
{
    public function send(Request $request){
    
        $user = $request->user(); // Get AuthUser instance from request
        
        $user_id = $user->id; // Get user id 
        $user_email = $user->id; // Get user email


    }
}

AuthUser 类

class AuthUser
{

    private $token;

    public $email;
    public $id;

    /*
     * Here you can add your custom claims 
     */

    public function __construct()
    {
        $this->token = (new Parser())->parse(JWTAuth::getToken()->get());

        $this->id = self::getClaim("sub");
        $this->email = self::getClaim("email");
    }

    private function getClaim($name){

        return $this->token->getClaim($name);

    }

}

JWT 签名

默认情况下,该项目使用RS256算法来验证令牌并从外部服务检索公钥。

您可以在jwt.php配置文件中更改URL

'token-provider' => [
        'pkey-url' => env('ISSUER_PKEY_URL')
    ]

Docker

项目包含Dockerfiledocker-compose.yml,以便使用Docker在本地运行。

贡献

您可以根据自己的意愿随意修改!

参考文献