-
-
Notifications
You must be signed in to change notification settings - Fork 1
User_AccessToken
You may need to import this feature on top of your code.
use \Scarlets\Library\User\AccessToken;The AccessToken configuration are stored on /config/auth.php.
When you're using this library, it will automatically add token_table table and app_table on the database if not exist.
| Column | Description |
|---|---|
| token_id | AccessToken ID |
| app_id | Application ID |
| user_id | User ID |
| expiration | Expiration timestamp |
| permissions | AccessToken permissions |
But before you can get an AccessToken you must define your application in the app_table for the AccessToken.
| Column | Description |
|---|---|
| app_id | Application ID |
| app_secret | Application Secret Key |
When creating access token usually you will have different App in your database, sometime it could be an application created by another developer. So you need to define set $appID and it's $appSecret in app_table database. The token information will be saved in token_table database.
AccessToken::create($appID, $appSecret, $userData);
# Example
AccessToken::create(1, 'H8^0b D(@.;{', [
'userID'=>1,
'username'=>'hello',
'permissions'=>'|1|3|5|7|' // Wrapped PermissionID
]);The AccessToken will only valid in one day. You can define your own PermissionID somewhere on your Application. The $userData is required, and permissions can also be |*| if the user has any permission.
If you already have the user access token you can parse and validate it like below.
AccessToken::parse($accessToken);But if the AccessToken still in the request query ?access_token=AccessToken or the request header Authentication: bearer AccessToken. You can utilize framework's feature.
AccessToken::parseAvailableToken();It's usual if AccessToken have an expiration time, but instead of creating new AccessToken it's better to extend the expiration time before it's expired.
AccessToken::refresh($expires_in = 2592000);After the AccessToken was parsed by the framework, you can easily obtain data for the current AccessToken.
AccessToken::$appID = 0;
AccessToken::$tokenID = 0;
AccessToken::$userID = 0;
AccessToken::$expiration = 0;To check if an user was allowed to do something, you need to use AccessToken::isAllowed with the permissionID.
AccessToken::isAllowed($permissionID);
# Example
$PermissionID = [0=>'posting', 1=>'deleting', 2=>'modify'];
if(AccessToken::isAllowed(2))
die("User allowed for modify stuff");Usually the expired AccessToken will need to be removed manually by setting up a cronjob. But if you want to remove AccessToken from the database even it haven't expired, you can use revoke function.
AccessToken::revoke($tokenID = false);