1. 要先去阿里云管理后台开通STS服务
  2. 然后去 下载类库包 https://help.aliyun.com/document_detail/31920.html
  3. 直接上代码,调用即可
<?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;
    }

}

把数据返回前端即可

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐