antarccub / laravel-jwt-microservice
基于Laravel框架和JWT身份验证创建微服务的基项目
dev-master
2018-03-10 12:48 UTC
Requires
- php: >=7.0.0
- fideloper/proxy: ~3.3
- guzzlehttp/guzzle: ^6.3
- laravel/framework: 5.5.*
- laravel/tinker: ~1.0
- lcobucci/jwt: ^3.2
- tymon/jwt-auth: ^0.5.12
Requires (Dev)
- filp/whoops: ~2.0
- fzaninotto/faker: ~1.4
- mockery/mockery: ~1.0
- phpseclib/phpseclib: ^2.0
- phpunit/phpunit: ~6.0
- symfony/thanks: ^1.0
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
项目包含Dockerfile和docker-compose.yml,以便使用Docker在本地运行。
贡献
您可以根据自己的意愿随意修改!