- 要先去阿里云管理后台开通STS服务
- 然后去 下载类库包 https://help.aliyun.com/document_detail/31920.html
- 直接上代码,调用即可
<?php
namespace app\common;
class StsService
{
protected $url = 'https://sts.aliyuncs.com';
protected $accessKeySecret;
protected $accessKeyId;
protected $roleArn;//指定角色的 ARN ,角色策略权限
protected $durationSeconds = '900';//指定的过期时间
public function __construct()
{
$config = config('aliyun');
$this->accessKeyId = $config['accessKey_id'];
$this->accessKeySecret = $config['accessKey_secret'];
$this->roleArn = '';//指定角色的 ARN ,角色策略权限
}
public function getStsAuth()
{
//引入文件,根据自己路径来引入
require_once VENDOR_PATH.'sts-server/aliyun-php-sdk-core/Config.php';
$iClientProfile = \DefaultProfile::getProfile("cn-shenzhen", $this->accessKeyId, $this->accessKeySecret);
$client = new \DefaultAcsClient($iClientProfile);
$request = new \Sts\Request\V20150401\AssumeRoleRequest();
$request->setRoleSessionName("client_name");
$request->setRoleArn($this->roleArn);
$request->setDurationSeconds($this->durationSeconds);
$response = $client->doAction($request);
$rows = array();
$body = $response->getBody();
$content = json_decode($body);
if ($response->getStatus() == 200){
$rows['statusCode'] = 200;
$rows['accessKeyId'] = $content->Credentials->AccessKeyId;
$rows['accessKeySecret'] = $content->Credentials->AccessKeySecret;
$rows['expiration'] = $content->Credentials->Expiration;
$rows['securityToken'] = $content->Credentials->SecurityToken;
}else{
$rows['statusCode'] = 500;
$rows['errorCode'] = $content->Code;
$rows['errorMessage'] = $content->Message;
}
return $rows;
}
}
把数据返回前端即可