我正在为一个web平台制作SDK,有一个客户端类需要cookie进行授权,还有一个函数可以从cookie中获取auth令牌。所以我的问题是:如何检查函数是否在类外被调用。我需要这个,因为我想用密码保护这个函数,这样如果类调用它,它就可以在没有密码的情况下工作。这是我的代码:
public function gettoken(?string password = ""): string{
//check if it's called inside of class
if (fromClass() == true){
//code that gets token
}
//if it's called outside of class
if ($password == $this->password){
//code that gets token
}
return "Incorrect password";
}
这听起来很像是个坏主意。
为什么不制作两个函数:一个是需要密码的公共函数,另一个是不需要密码的私有函数。当然,在验证了密码之后,公共函数可以调用私有函数。
类似这样的东西:
public function getTokenUsingPassword($password)
{
if ($password == $this->password) {
return $this->getToken();
}
return false;
}
private function getToken()
{
return //code that gets token
}