Phil Sturgeons中的方法特定身份验证php codeigniter rest api

一些

嗨我知道我可以在Phil Sturgeons rest API中设置其余身份验证,但我只想要一些身份验证 REST API中的方法。</ p>

我希望我的一些方法可供所有未经身份验证的人访问,而其他方法只能由管理员/经过身份验证的用户访问。</ p >

在.net中我可以简单地在Web服务中设置[RequiresAuthentication]属性,在CodeIgniter中是否可以使用Rest PHP做类似的事情?</ p>

或者控制器特定也可以。</ p>
</ div>

展开原文

原文

Hi I know that I can set the rest authentication in Phil Sturgeons rest API, but I only want authentication for some methods in the REST API.

I want some of my methods to be accessible for everyone with no authentication at all, and others to only be accessible to administrators/people authenticated users.

In .net I can simply set a [RequiresAuthentication] attribute over methods in a webservice, is there something similar I can do with Rest PHP in CodeIgniter?

Or Controller specific would be fine too.

dtbc37573
dtbc37573 是的,以上是可能的,我告诉你,它是!让你的钥匙很好很长,他们不会被猜到。只要没有人分享它们,就完全安全。
接近 10 年之前 回复
doumi2106
doumi2106 鲟鱼-以上可能吗?
接近 10 年之前 回复
dongshi1102
dongshi1102 另外-使用api-key而不是身份验证有多安全?我感兴趣的是有一些不需要登录的方法,任何匿名访客都可以使用,有些只有管理员才允许登录。
接近 10 年之前 回复
duan33360
duan33360 没问题,我在这里订阅了#codeigniter。我没有开始记录这个(客户付钱给我编写代码,但不是文档;-))但这很容易。查看rest.php配置文件以获取api密钥的示例模式。然后,您可以使用受保护的$methods属性设置特定方法。如果您查看示例键控制器,您应该明白这一点。
接近 10 年之前 回复
duanke3985
duanke3985 嗨菲尔-非常感谢你的注意-我不能完全了解如何使用这个功能。我试着做了一个小时的搜索,但我似乎找不到如何使用apikey函数的文档。它是特定的api特定还是一般的codeigniter功能?你能给出一个超短的例子,说明我如何要求用户登录以使用特定方法,而在其他人身上根本没有登录或指向某些文档-我非常感谢你的工作,这对我有很大的帮助。
接近 10 年之前 回复
dqpdb82600
dqpdb82600 你看过GitHub上的最新版本了吗?您可以使用API​​密钥指定特定方法的权限级别,因此有些可能是公共的,有些可能是私有的。
接近 10 年之前 回复

2个回答



“philturgeon Phil Sturgeon
为什么人们会在StackOverflow和随机论坛上询问有关我的代码的问题,而不仅仅是问我?”</ p >

去问Phil Sturgeon。</ p>
</ div>

展开原文

原文

"philsturgeon Phil Sturgeon Why do people ask questions about my code on StackOverflow and random forums instead of just asking me?"

Go ask Phil Sturgeon.

doujuchuan9915
doujuchuan9915 嘿,谢谢那是谁。 你已经拥有比其他许多成员更多的声誉;)该线程因为使用Digest进行高级api保护而失败了。 使用密钥更易于管理。
接近 10 年之前 回复
duancunsu9209
duancunsu9209 谢谢。 在我的辩护中,我会说我确实花时间寻找解决方案。 即在Philign参与其中的不确定的codeigniter.com/forums/viewthread/159098/#766632中。 这让我相信,或许在另一个地方的线程可能是一个好主意。
接近 10 年之前 回复



Hello Jakob :)您正在尝试做的事情有点棘手,因为Phil Sturgeons其余API控制器仅支持全局设置身份验证方法。 要将其设置为globaly,请在其余配置文件中编辑此行:</ p>

  $ config ['rest_auth'] =''; 
</ code> </ pre> \ n

我有一个未经测试的理论:
要为每个控制器设置此设置,请确保配置文件中的设置如上(空)并将此构造函数添加到控制器,您要为以下内容指定身份验证方法: </ p>

  function __construct()
{
$ this-&gt; load-&gt; config('rest');
// $ this-&gt; _prepare_basic_auth( ); //取消注释以使用基本
// $ this-&gt; _prepare_digest_auth(); //取消注释以使用摘要
parent :: Controller();
}
</ code> </ pre>
</ div>

展开原文

原文

Hello Jakob :) What you are trying to do is a bit tricky as Phil Sturgeons rest API Controller only supports setting the authentication method globally. To set it globaly you edit this line in the rest config file:

$config['rest_auth'] = '';

I have an untested theory though: To set this setting per controller make sure the setting in the config file is as above (empty) and add this constructor to the controller you would like to specify authentication method for:

function __construct()
{
    $this->load->config('rest');
    //$this->_prepare_basic_auth(); //Uncomment to use basic
    //$this->_prepare_digest_auth(); //Uncomment to use digest
    parent::Controller();
}

doq1969
doq1969 是的,我自己尝试过这样的方法,但无论我得到什么:致命的错误:调用私有方法REST_Controller :: _ prepare_digest_auth()看来我不能从一个孩子那里调用那个方法
接近 10 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐