인터넷에서 유용한 정보를 찾을 수 없어서 공유하고 싶습니다. 클라이언트에Parse.com에서 Pusher 비공개 채널 인증을 사용하는 방법
3
A
답변
6
:
구문 분석 클라우드에var pusher = new Pusher('your-app-key', {authTransport: 'parse'});
Pusher.authorizers.parse = function (socketId, callback) {
var pusherData = {
socket_id: socketId,
channel_name: this.channel.name
};
Parse.Cloud.run('authorizePusherChannel', pusherData, {
success: function (result) {
callback(false, JSON.parse(result));
},
error: function (error) {
callback(true, error);
}
});
};
:
Parse.Cloud.define('authorizePusherChannel', function (request, response) {
if (!request.user) { response.error('User should be autenticated.'); }
var pusherAppKey = 'your-pusher-app-key';
var pusherAppSecret = 'your-pusher-app-secret';
var stringToSign = request.params.socket_id + ':' + request.params.channel_name;
var authToken = pusherAppKey + ':' + crypto.createHmac('sha256', pusherAppSecret).update(stringToSign). digest('hex');
response.success(JSON.stringify({auth:authToken}));
});
0
Pusher.authorizers.parse = function (socketId, callback) {
var pusherData = {
socket_id: socketId,
channel_name: this.channel.name
};
Parse.Cloud.run('authorizePusherChannel', pusherData, {
success: function (result) {
callback(false, JSON.parse(result));
},
error: function (error) {
callback(true, error);
+0
여기서 중요한 점은 무엇입니까? –
나는'parse' 하나를 사용할 수있는 권한 부여를 설정 누락 된 부분이 있다고 생각. – leggetter
@leggetter 당신 말이 맞아요! 대답에 추가했습니다. 감사! –
이것은 나를 위해 작동하지 않습니다. 엔드 포인트가 호출됩니다 (구문 분석 콘솔 디버깅에 의해 확인 됨). 응답은 유효한 auth keyed json으로 보입니다. 그러나 푸시 콘솔에서 오류가 발생합니다. "개인 채팅에 가입하는 데 필요한 인증 정보" – Kevin