PHP生成access token - GoEasy客户端安全

安装依赖firebase/php-jwt

安装教程:https://github.com/firebase/php-jwt

PubSub


    use Firebase\JWT\JWT;


    function pubSubAccessToken($id, $protectedChannel){

        $payload = array(
            "id" => $id,//必须与connect GoEasy时传入的id一致
            "channel" => $protectedChannel,//要授权的channel
            "w" => true,//写权限,是否允许publish
            "r" => true,//读全新,是否允许subscriber
            "exp"=> strtotime('+3 hour')//token的有效时间,最长不能超过3小时,为了安全,GoEasy不接受有效时间大于3小时的access token
        );


        //应用的Secret key,登陆GoEasy->应用详情->Professional keys->Secret key
        $secretKey = "f7e4cf0f5c6db52d";


        $accessToken = JWT::encode($payload, $secretKey);

        return $accessToken;
    }

IM

私聊


    use Firebase\JWT\JWT;

    function privateChatAccessToken($id, $toId){

        $payload = array(
            "id" => $id,//必须与connect GoEasy时传入的id一致
            "to" => $toId,//私聊对象的id
            "w" => true,//写权限,是否允许发送        
            "exp"=> strtotime('+3 hour')//token的有效时间,最长不能超过3小时,为了安全,GoEasy不接受有效时间大于3小时的access token
        );


        //应用的Secret key,登陆GoEasy->应用详情->Professional keys->Secret key
        $secretKey = "f7e4cf0f5c6db52d";


        $accessToken = JWT::encode($payload, $secretKey);

        return $accessToken;
    }

群聊


    use Firebase\JWT\JWT;

    function groupChatAccessToken($id, $groupIds){

        $payload = array(
            "id" => $id,//必须与connect GoEasy时传入的id一致
            "to" => $groupIds,//需要授权的groupId列表, 支持一次为多个群授权
            "w" => true,//写权限,是否允许发送 
            "r"=> true, //写权限,是否允许订阅群消息       
            "exp"=> strtotime('+3 hour')//token的有效时间,最长不能超过3小时,为了安全,GoEasy不接受有效时间大于3小时的access token
        );


        //应用的Secret key,登陆GoEasy->应用详情->Professional keys->Secret key
        $secretKey = "f7e4cf0f5c6db52d";


        $accessToken = JWT::encode($payload, $secretKey);

        return $accessToken;
    }

results matching ""

    No results matching ""