本文整理汇总了PHP中OAuth2\Server::getStorage方法的典型用法代码示例。如果您正苦于以下问题:PHP Server::getStorage方法的具体用法?PHP Server::getStorage怎么用?PHP Server::getStorage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OAuth2\Server
的用法示例。
在下文中一共展示了Server::getStorage方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __invoke
/**
* Create an OAuth2\Server instance.
*
* @return OAuth2Server
* @throws Exception\RuntimeException
*/
public function __invoke()
{
if ($this->server) {
return $this->server;
}
$config = $this->config;
if (!isset($config['storage']) || empty($config['storage'])) {
throw new Exception\RuntimeException('The storage configuration for OAuth2 is missing');
}
$storagesServices = array();
if (is_string($config['storage'])) {
$storagesServices[] = $config['storage'];
} elseif (is_array($config['storage'])) {
$storagesServices = $config['storage'];
} else {
throw new Exception\RuntimeException('The storage configuration for OAuth2 should be string or array');
}
$storage = array();
foreach ($storagesServices as $storageKey => $storagesService) {
$storage[$storageKey] = $this->services->get($storagesService);
}
$enforceState = isset($config['enforce_state']) ? $config['enforce_state'] : true;
$allowImplicit = isset($config['allow_implicit']) ? $config['allow_implicit'] : false;
$accessLifetime = isset($config['access_lifetime']) ? $config['access_lifetime'] : 3600;
$audience = isset($config['audience']) ? $config['audience'] : '';
$options = isset($config['options']) ? $config['options'] : array();
$options = array_merge(array('enforce_state' => $enforceState, 'allow_implicit' => $allowImplicit, 'access_lifetime' => $accessLifetime), $options);
// Pass a storage object or array of storage objects to the OAuth2 server class
$server = new OAuth2Server($storage, $options);
$availableGrantTypes = $config['grant_types'];
if (isset($availableGrantTypes['client_credentials']) && $availableGrantTypes['client_credentials'] === true) {
$clientOptions = array();
if (isset($options['allow_credentials_in_request_body'])) {
$clientOptions['allow_credentials_in_request_body'] = $options['allow_credentials_in_request_body'];
}
// Add the "Client Credentials" grant type (it is the simplest of the grant types)
$server->addGrantType(new ClientCredentials($server->getStorage('client_credentials'), $clientOptions));
}
if (isset($availableGrantTypes['authorization_code']) && $availableGrantTypes['authorization_code'] === true) {
// Add the "Authorization Code" grant type (this is where the oauth magic happens)
$server->addGrantType(new AuthorizationCode($server->getStorage('authorization_code')));
}
if (isset($availableGrantTypes['password']) && $availableGrantTypes['password'] === true) {
// Add the "User Credentials" grant type
$server->addGrantType(new UserCredentials($server->getStorage('user_credentials')));
}
if (isset($availableGrantTypes['jwt']) && $availableGrantTypes['jwt'] === true) {
// Add the "JWT Bearer" grant type
$server->addGrantType(new JwtBearer($server->getStorage('jwt_bearer'), $audience));
}
if (isset($availableGrantTypes['refresh_token']) && $availableGrantTypes['refresh_token'] === true) {
$refreshOptions = array();
if (isset($options['always_issue_new_refresh_token'])) {
$refreshOptions['always_issue_new_refresh_token'] = $options['always_issue_new_refresh_token'];
}
// Add the "Refresh Token" grant type
$server->addGrantType(new RefreshToken($server->getStorage('refresh_token'), $refreshOptions));
}
return $this->server = $server;
}
示例2: getApplication
public function getApplication($clientId)
{
if (!$clientId) {
return null;
}
return $this->server->getStorage('client')->getApplication($clientId);
}
示例3: create
/**
* @param mixed $config
* @param mixed $name
* @param Server|null $server
* @return GrantTypeInterface
*
* @throws ConfigurationException
*/
public function create($config, $name = null, Server $server = null)
{
//If the config value is a string, assume that it's a grant type name, a class name, or a
//service name
if (is_string($config)) {
if (class_exists($config)) {
$config = array('class' => $config);
} else {
if ($obj = $this->resolveReference($config)) {
return $obj;
} else {
$config = array('name' => $config);
}
}
}
//See if it's a preconfigured object or a closure
if ($obj = $this->resolveReference($config)) {
return $obj;
}
//Otherwise, try to manually instantiate a class
if (is_array($config)) {
//Determine name, if missing
if (!isset($config['name'])) {
if (is_string($name)) {
$config['name'] = $name;
} else {
if (isset($config['class'])) {
$config['name'] = $this->camelCaseToUnderscore($config['class']);
}
}
}
//Determine class, if missing
if (isset($config['name']) && !isset($config['class'])) {
$config['class'] = $this->grantTypeNamespace . $this->underscoreToCamelCase($config['name']);
}
//Call constructor with the appropriate parameters
if (isset($config['class']) && class_exists($config['class'])) {
$storage = null;
if (isset($config['storage'])) {
$storage = $this->resolveReference($config['storage']);
}
if (!$storage && $server && isset($config['name'])) {
$storage = $server->getStorage($config['name']);
}
$class = $config['class'];
if ($storage && isset($config['options'])) {
return new $class($storage, $config['options']);
}
if ($storage) {
return new $class($storage);
}
return new $class();
}
}
throw new ConfigurationException('Unable to find or instantiate grant type ' . $name . ' from configuration ' . print_r($config, true));
}
示例4: testUsingJustJwtAccessTokenStorageWithResourceControllerIsOkay
public function testUsingJustJwtAccessTokenStorageWithResourceControllerIsOkay()
{
$pubkey = $this->getMock('OAuth2\\Storage\\PublicKeyInterface');
$server = new Server(array($pubkey), array('use_jwt_access_tokens' => true));
$this->assertNotNull($server->getResourceController());
$this->assertInstanceOf('OAuth2\\Storage\\PublicKeyInterface', $server->getStorage('public_key'));
}
示例5: injectGrantTypes
/**
* Inject grant types into the OAuth2\Server instance, based on zf-oauth2
* configuration.
*
* @param OAuth2Server $server
* @param array $availableGrantTypes
* @param array $options
* @return OAuth2Server
*/
private static function injectGrantTypes(OAuth2Server $server, array $availableGrantTypes, array $options, ServiceLocatorInterface $services)
{
if (isset($availableGrantTypes['client_credentials']) && $availableGrantTypes['client_credentials'] === true) {
$clientOptions = [];
if (isset($options['allow_credentials_in_request_body'])) {
$clientOptions['allow_credentials_in_request_body'] = $options['allow_credentials_in_request_body'];
}
// Add the "Client Credentials" grant type (it is the simplest of the grant types)
$server->addGrantType(new ClientCredentials($server->getStorage('client_credentials'), $clientOptions));
}
if (isset($availableGrantTypes['authorization_code']) && $availableGrantTypes['authorization_code'] === true) {
// Add the "Authorization Code" grant type (this is where the oauth magic happens)
$server->addGrantType(new AuthorizationCode($server->getStorage('authorization_code')));
}
if (isset($availableGrantTypes['password']) && $availableGrantTypes['password'] === true) {
// Add the "User Credentials" grant type
$server->addGrantType(new UserCredentials($server->getStorage('user_credentials')));
}
if (isset($availableGrantTypes['jwt']) && $availableGrantTypes['jwt'] === true) {
// Add the "JWT Bearer" grant type
$server->addGrantType(new JwtBearer($server->getStorage('jwt_bearer'), $options['audience']));
}
if (isset($availableGrantTypes['refresh_token']) && $availableGrantTypes['refresh_token'] === true) {
$refreshOptions = [];
if (isset($options['always_issue_new_refresh_token'])) {
$refreshOptions['always_issue_new_refresh_token'] = $options['always_issue_new_refresh_token'];
}
if (isset($options['refresh_token_lifetime'])) {
$refreshOptions['refresh_token_lifetime'] = $options['refresh_token_lifetime'];
}
// Add the "Refresh Token" grant type
$server->addGrantType(new RefreshToken($server->getStorage('refresh_token'), $refreshOptions));
}
// Add custom grant type from the service locator
if (isset($availableGrantTypes['custom_grant_types']) && is_array($availableGrantTypes['custom_grant_types'])) {
foreach ($availableGrantTypes['custom_grant_types'] as $grantKey => $grantType) {
if ($services->has($grantType)) {
$server->addGrantType($services->get($grantType, $grantKey));
}
}
}
return $server;
}