Lean set of helper classes to deal with JWT in SilverStripe setups.
use Level51\JWTUtils\JWTUtils;
use Level51\JWTUtils\JWTUtilsException;
class MyTokenController extends Controller {
private static $allowed_actions = ['token'];
public function token() {
try {
$payload = JWTUtils::inst()->byBasicAuth();
return json_encode($payload);
} catch(JWTUtilsException $e) {
return $this->httpError(403, $e->getMessage());
}
}
}
With correct config and credentials there will be a payload like the following:
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJtZW1iZXJJZCI6MSwiaXNzIjoiaHR0cDpcL1wvc2lsdmVyZ3JvdW5kLm1lXC8iLCJleHAiOjE1MTgyNzMwMjIsImlhdCI6MTUxNzY2ODIyMiwicmF0IjoxNTE3NjY4MjIyLCJqdGkiOiI0ZjIyMjViNS0wMzE5LTQ3YTMtYWNjMy1jOWJlNDk4MDc1NTIifQ.vQLLzmB7rWkwQDomAuC6Bfm-J0ITsIfFq4wL8UMAAJs",
"member": {
"id": 1,
"email": "[email protected]",
"firstName": "Julian",
"surname": "Scheuchenzuber"
}
}
Level51\JWTUtils\JWTUtils:
secret: 'my-super-secret' # Secret for signature. This is mandatory and there is no default value
lifetime_in_days: 7 # Term of validity
renew_threshold_in_minutes: 60 # Keep JWT for at least 60 minutes
static inst()
: Get singleton instancebyBasicAuth($includeMemberData: bool = true): array
: Creates a new token from Basic Auth member datarenew($token: string): string
: Checks if the given token is valid and needs to be renewedcheck($token: string): bool
: Checks if token is valid and non-expiredsake dev/tests/JWTUtilsTest db=sqlite3
exp
, iat
and rat
Module rating system helping users find modules that are well supported. For more on how the rating system works visit Module standards
Score not correct? Let us know there is a problem