Я пытаюсь создать токен доступа, используя идентификатор пользователя окна приложения. Я использую следующий код для создания пользователя окна приложения
curl https://api.box.com/2.0/users \
-H "Authorization: Bearer <TOKEN>" \
-d '{"name": "Ned Stark", "is_platform_access_only": true}' \
-X POST
Тогда дается следующий результат:
{"type":"user","id":"2199107004","name":"Ned Stark","login":"[email protected]","created_at":"2017-08-03T00:58:04-07:00"
Можно ли создать токен доступа, используя идентификатор пользователя окна приложения.?
Edited
Я создаю открытый ключ в BOX API. Затем у меня есть файл с открытым ключом и частным ключом, похожий на ниже,
{
"boxAppSettings": {
"clientID": <Client ID>,
"clientSecret": <clientsecret>,
"appAuth": {
"publicKeyID": <publickeyid>,
"privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY-----\Key heresn-----END ENCRYPTED PRIVATE KEY-----\n",
"passphrase": <phrase>
}
},
"enterpriseID": <enterpriseId>
}
Затем я создаю заголовок и полезную нагрузку, которая следующая:
$header = ["typ"=> "JWT", "alg"=>"RS256","kid"=> <public key id>];
$payload = [
"iss"=> "<client id>",
"sub"=> "<APP USER ID>",
"box_sub_type"=> "user",
"aud"=>"https://api.box.com/oauth2/token",
"jti"=>"<I don't know what is this>",
"exp"=>1428699385
];
$header = base64_encode(json_encode($header));
$payload = base64_encode(json_encode($payload));
После этого я застрял, как реализовать частный и открытый ключ здесь. На самом деле у меня есть файл JSON, который загружается из BOX API.
И я не понимаю, что такое JTI
? Как добавить в этот файл открытый ключ и/или файл JSON с закрытым ключом? Как это сделать?
И я создаю закрытый ключ вручную в соответствии с документом, как следует
openssl genrsa -aes256 -out private_key.pem 2048
Затем я дал пароль как "12345". И генерировать открытый ключ, как следует,
openssl rsa -pubout -in private_key.pem -out public_key.pem
Затем я добавил открытый ключ в BOX-API, и я сделал следующий код:
$data = file_get_contents('private_key.pem');
$result = openssl_pkey_get_private($data,"12345");
print_r($result);
Он дает следующий результат:
Resource id #4
Они не похожи на зашифрованные данные. И как реализовать private и public при вызове box api в php.?