我希望创建记录的用户名与该记录相关联。这应该发生在服务器上,而不是通过原始客户端连接。我在服务器上看到的唯一可以访问用户名的地方是 canPerformAction。是否可以在存储连接器中创建/更新记录之前重写消息以插入用户名?即使我要编写自己的存储连接器,用户名也不会传递给存储连接器 API。你能给我任何其他的选择或指导吗?
问问题
149 次
1 回答
3
可以使用 dataTransform 函数将用户名(以及任何其他数据)添加到传出消息中。请在此处找到深入的解释:
http://deepstream.io/tutorials/transforming-data.html
将用户名传递给存储连接器有点棘手,因为记录和用户之间没有 1:1 的关系。如果您想创建私人记录,我宁愿将用户名作为记录名称的一部分,例如
private-johndoe/iam7f3vy-2mgd656jrx3di
并使用permissionHandler的canPerformAction
方法确保所有以'private-'开头的记录名都以与他们交互的用户名继续
canPerformAction: function( username, message, callback ) {
if( message.topic === C.TOPIC.RECORD ) {
var recordName = message.data[ 0 ];
if( recordName.substring( 0, 8 ) === 'private-' ) {
var providedUsername = recordName.substring( 8, recordName.indexOf( '/' ) );
callback( null, providedUsername === username );
}
} else {
callback( null, true );
}
}
于 2015-07-21T08:58:14.763 回答