javascript - 如何在 swift 中实现 Pubnub 访问管理器
问题描述
我正在研究如何快速实现 pubnub 访问管理器,经过一些研究,我知道:
- Swift SDK 不包含 pubnub.grant
- 我需要使用用于无服务器计算的 pubnub 函数来实现这一点
我在 pubnub 仪表板中创建了一个函数并创建了一个模块 PubNub,还创建了一个事件类型为“On Request”的函数并添加了授权代码。
export default (request, response) => {
const pubnub = require('pubnub');
const kvstore = require('kvstore');
let headersObject = request.headers;
let paramsObject = request.params;
let methodString = request.method;
let bodyString = request.body;
response.headers['Access-Control-Allow-Origin'] = '*';
response.headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept';
response.headers['Access-Control-Allow-Methods'] = 'GET, POST, OPTIONS, PUT, DELETE';
response.headers['Content-Type'] = 'application/json';
var uuid = 'aartisagarvadgama'
return pubnub.grant({
channels: ['channel_atts_pubnub'],
read: true, // false to disallow
write: false, // false to disallow,
authKeys: [uuid],
ttl: 0
}).then(() => {
console.log('grant success')
response.status = 200;
return response.send(uuid);
}).catch((error) => {
console.log(error);
response.status = 400;
return response.send();
});
};
我通过从函数复制 URL 并获取成功代码来调用上述函数,但这如何反映我的 iOS 应用程序。
无论如何,请让我知道我可以在我的应用程序中实现访问管理器。
根据我的理解,我需要创建一个函数,并通过调用该函数来授予用户权限。之后,当我尝试订阅或发布时,我会得到 200 而不是 403。任何帮助将不胜感激。请帮我。
解决方案
用于 Swift 应用程序的 PubNub 访问管理器
PubNub Swift SDK(Access Manager 教程)没有授权方法,因为您需要使用您的密钥初始化 PubNub,并且您永远不应该在客户端应用程序中这样做。您应该只在安全的服务器中这样做。您的服务器向传递回您的客户端的 auth-key 授予权限,例如 Swift 应用程序,并且该 auth-key 用于使用您的订阅密钥和可选的发布密钥来初始化 PubNub。
也可以看看
推荐阅读
- javascript - Spring Boot:传递哈希图并打开新页面
- bash - 如何从文本文件中获取变量值以供 bash 脚本使用?
- javascript - 使用带有多个匹配字符串的正则表达式的 Javascript 替换函数
- ios - 无法使用 Firebase ML Kit Vision 文本检测器编译 iOS React Native 应用程序
- java - 分隔符逗号
- tensorflow - 什么是填充可变长度数据集以在没有精确的 Tensorflow 中进行批处理的有效方法
- r - 每次迭代都依赖于先前迭代的结果时的优化 R 循环
- python - Django 通过 Docker 错误:无法分配该 IP 地址
- shell - 在 Unix (AIX) 中获取今天的日期减去一年
- google-chrome - htmlToImage Chrome 64 SecurityError:无法从“CSSStyleSheet”读取“cssRules”属性:无法访问规则