OAuth2.0服务器授权类型用户凭据密码未加密

时间:2016-02-25 08:16:41

标签: php oauth oauth2

我也关注这个人storage of client credential on OAuth2 server关于oauth2-server-php-docs的问题。虽然它回答了客户机密的一件事,但我想询问用户凭据。检查oauth2-server-php-docs中的以下代码示例:

// create some users in memory
$users = array('bshaffer' => array('password' => 'brent123', 'first_name' => 'Brent', 'last_name' => 'Shaffer'));

// create a storage object
$storage = new OAuth2\Storage\Memory(array('user_credentials' => $users));

// create the grant type
$grantType = new OAuth2\GrantType\UserCredentials($storage);

// add the grant type to your OAuth server
$server->addGrantType($grantType);

它表示用户凭据将存储在内存中,并且它没有说明密码加密的任何内容。这是我的用例 - 我已经在MySQL中存储了用户凭证,密码使用PHP password_hash()加密。那么,如果$ user [' bshaffer'] ['密码']只是纯文本,我如何匹配或使用$ storage = new OAuth2 \ Storage \ Memory()?

2 个答案:

答案 0 :(得分:0)

我也有这个问题。但是,如果您阅读文档中的注释,则在您提到的代码片段下方,它会说:

注意:用户存储是针对每个应用程序高度定制的,因此强烈建议您使用OAuth2 \ Storage \ UserCredentialsInterface实现自己的存储

我认为我们可以使用“ OAuth2 \ Storage \ UserCredentialsInterface”接口为用户模型实现自己的用户存储。

答案 1 :(得分:-1)

我通过拥有自己的网络架构并扩展实现用户定义的password_verify()的Pdo存储对象来实现这一目标。所以我用这个创建了mytoken.php,它从前端请求接收帖子然后再次向127.0.0.1发送请求,使用AUTH用户和密码(client_secret)给token.php。我这样做是为了不从前端请求发送client_secret。