web派

使用Tea小程序内置接口实现文章权限阅读功能

使用Tea小程序内置接口实现文章权限阅读功能

从原有设计的方案中,是直接接入系统的同类接口。

但由于小程序属于特殊展现,如果使用系统的接口,会出现小程序端页面被插入一堆不支持的内容。

因此,单独为Tea小程序内置了插件接口。

关于权限阅读的体验,例如访问《Tea小程序首次配置指南》。

在获取文章页面,分别接入了三个接口

获取文章开始:传参($id, $controller)

Controller_GetArticleInfo_Begin

文章转换成输出数据前:传参($article, $node, $controller)

Controller_GetArticleInfo_TransformBefore

获取文章结束待输出:传参($result, $container)

Controller_GetArticleInfo_End

注意:请不要随意变动$controller,否则会出错!


挂载文章转换数据前接口,即可实现权限阅读功能;

以webpi的权限阅读为例

在ActivePlugin的时候,挂载接口

function ActivePlugin_webpi()
{
    // 在Tea小程序插件中挂载接口
    if (function_exists('TeaXCX_AddHook')) {
        TeaXCX_AddHook('Controller_GetArticleInfo_TransformBefore', 'webpi_Plugin_TeaXCX_ViewArticle_TransformBefore');
    }
}

然后在对应的方法中,进行权限过滤

/**
 * 查看文章时,控制访问权限
 */
function webpi_Plugin_TeaXCX_ViewArticle_TransformBefore(&$article, $node, $controller)
{
    if ('基于$article对象完成的权限判断') {
        $article->Content = '<p>您没有这篇文章的阅读权限</p>';
    }
}

简单解释一下$node;

因为涉及到密码输入验证,或者需要切换到用户中心登录等功能的交互;

这需要在小程序端单独完成,因此会在$node中插入相关的交互节点。

目前此参数为保留内容,相关交互方案正在设计中。

web派
@戒 网站全站开启了访问限制,不是用户中心控制的。是访问插件控制的,管理员可登陆后正常浏览。那么小程序端可以浏览全站文章吗,会不会有像网站一样的限制
小程序这边需要调用接口,就像文章中所描述的那样
2020-04-03 20:54:07
2楼
戒
网站全站开启了访问限制,不是用户中心控制的。是访问插件控制的,管理员可登陆后正常浏览。那么小程序端可以浏览全站文章吗,会不会有像网站一样的限制
2020-04-03 15:13:13
1楼
小程序码

如需参与评论或查看更多留言,请微信扫一扫

小程序码