【发布时间】:2015-04-02 08:32:48
【问题描述】:
我目前正在尝试安装 Yii2 扩展来实现 OAuth2 服务器 (https://github.com/Filsh/yii2-oauth2-server)。但是,我继续运行以下错误:
有没有人知道如何安装这个扩展。我按照给出的说明进行操作,但没有提及该错误。
【问题讨论】:
我目前正在尝试安装 Yii2 扩展来实现 OAuth2 服务器 (https://github.com/Filsh/yii2-oauth2-server)。但是,我继续运行以下错误:
有没有人知道如何安装这个扩展。我按照给出的说明进行操作,但没有提及该错误。
【问题讨论】:
Satya 是对的。您需要按照repo's description 中的说明配置oauth2 模块:
'oauth2' => [
'class' => 'filsh\yii2\oauth2server\Module',
'options' => [
'token_param_name' => 'accessToken',
'access_lifetime' => 3600 * 24
],
'storageMap' => [
'user_credentials' => 'common\models\User'
],
'grantTypes' => [
'client_credentials' => [
'class' => 'OAuth2\GrantType\ClientCredentials',
'allow_public_clients' => false
],
'user_credentials' => [
'class' => 'OAuth2\GrantType\UserCredentials'
],
'refresh_token' => [
'class' => 'OAuth2\GrantType\RefreshToken',
'always_issue_new_refresh_token' => true
]
],
]
我已成功配置此扩展并创建了 Yii2 Rest API template with OAuth2 server https://github.com/ikaras/yii2-oauth2-rest-template - 请随意使用。此代码还有一些演示数据(使用示例)和scopes 对控制器的支持。
【讨论】:
在 config/main.php 的“模块”部分添加“oauth2”配置。 它可能有效
【讨论】:
在模块部分下的 confin/main.php 文件下使用此配置。
'oauth2' => [
'class' => 'filsh\yii2\oauth2server\Module',
'tokenParamName' => 'token',
'tokenAccessLifetime' => '100800', // Expiry Time
'storageMap' => [
'user_credentials' => 'common\models\User', // This Should be your model name
],
'grantTypes' => [
'client_credentials' => [
'class' => 'OAuth2\GrantType\ClientCredentials',
'allow_public_clients' => false,
],
'user_credentials' => [
'class' => 'OAuth2\GrantType\UserCredentials',
],
'refresh_token' => [
'class' => 'OAuth2\GrantType\RefreshToken',
'always_issue_new_refresh_token' => true,
'refresh_token_lifetime' => '100800',
],
],
];
【讨论】:
在范围问题上找到了我自己的解决方案,也许它对某人有用 - 在配置中用 ** 标记:
'modules' => [
'oauth2' => [
'class' => 'filsh\yii2\oauth2server\Module',
'tokenParamName' => 'accessToken',
'tokenAccessLifetime' => 3600 * 24,
'storageMap' => [
'client_credentials' => 'app\models\User',
'user_credentials' => 'app\models\User',
**'scope' => 'app\models\User',**
],
'grantTypes' => [
'client_credentials' => [
'class' => '\OAuth2\GrantType\ClientCredentials',
'allow_public_clients' => false,
'always_issue_new_refresh_token' => true
],
'user_credentials' => [
'class' => 'OAuth2\GrantType\UserCredentials',
],
'refresh_token' => [
'class' => 'OAuth2\GrantType\RefreshToken',
'always_issue_new_refresh_token' => true
]
]
]
],
【讨论】: