Php slim-oauth2无效令牌(Slimframework 3)
我将chadicus/slim-oauth2集合用于slimframework 3 这是我的代码atm(在Apache2上运行):Php slim-oauth2无效令牌(Slimframework 3),php,oauth,slim,Php,Oauth,Slim,我将chadicus/slim-oauth2集合用于slimframework 3 这是我的代码atm(在Apache2上运行): 我也有同样的问题,就是我不知道如何使用OAuth2服务器PHP 必须在数据库上创建OAuth2表,如下所示: 然后,您可以在数据库中创建用户,并使用PDO对用户令牌进行身份验证和保存: $pdo = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); $storage = new Stor
我也有同样的问题,就是我不知道如何使用OAuth2服务器PHP
必须在数据库上创建OAuth2表,如下所示:
然后,您可以在数据库中创建用户,并使用PDO对用户令牌进行身份验证和保存:
$pdo = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$storage = new Storage\Pdo($pdo);
$server = new OAuth2\Server(
$storage,
[
'access_lifetime' => 3600,
],
[
new GrantType\ClientCredentials($storage),
new GrantType\AuthorizationCode($storage),
]
);
对于任何从搜索引擎中偶然发现这个问题的人
首先,您必须理解OAuth2中的“内存”存储不是持久的,这意味着当您创建令牌时,它不会保存在任何地方。它的目的是向您展示该机制的令牌创建部分正在工作
其次,如果要对路由的客户端进行身份验证,则必须使用另一个存储(PDO或Redis)。这对于Redis来说相当简单。您只需在服务器上安装redis server
,保护它,然后在代码中实现它。要获得易于使用的Redis实现,请检查composer软件包predis/predis
有关如何使用Redis实现OAuth2的更多信息,请访问:
祝你今天愉快:)
$pdo = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$storage = new Storage\Pdo($pdo);
$server = new OAuth2\Server(
$storage,
[
'access_lifetime' => 3600,
],
[
new GrantType\ClientCredentials($storage),
new GrantType\AuthorizationCode($storage),
]
);