Coder Social home page Coder Social logo

yiisoft / yii-auth-client Goto Github PK

View Code? Open in Web Editor NEW
25.0 24.0 14.0 866 KB

Yii Framework external authentication via OAuth and OpenID Extension

Home Page: https://www.yiiframework.com/

License: BSD 3-Clause "New" or "Revised" License

PHP 98.42% CSS 0.44% JavaScript 1.14%
oauth auth oauth2 openid-connect api yii3 hacktoberfest optionalforframeworkannounce

yii-auth-client's Introduction

Yii Oauth OpenId

Yii External Authentication


Latest Stable Version Total Downloads Build status Scrutinizer Code Quality Code Coverage Mutation testing badge static analysis type-coverage

This extension adds OAuth, OAuth2 and OpenId Connect consumers for the Yii framework.

Requirements

  • PHP 7.4 or higher.

Installation

The package could be installed with Composer:

composer require yiisoft/yii-auth-client

Documentation

If you need help or have a question, the Yii Forum is a good place for that. You may also check out other Yii Community Resources.

License

The Yii External Authentication is free software. It is released under the terms of the BSD License. Please see LICENSE for more information.

Maintained by Yii Software.

Support the project

Open Collective

Follow updates

Official website Twitter Telegram Facebook Slack

yii-auth-client's People

Contributors

alexgx avatar arhell avatar cebe avatar dependabot-preview[bot] avatar devanych avatar dmitriy-fullstack-2010 avatar fantom409 avatar fcaldarelli avatar hiqsol avatar hirenbhut93 avatar kartik-v avatar klimov-paul avatar lesha701 avatar lucianobaraglia avatar luizcmarin avatar machour avatar mister-42 avatar pana1990 avatar qiangxue avatar rustamwin avatar samdark avatar silverfire avatar softark avatar terabytesoftw avatar umanamente avatar viktorprogger avatar vistart avatar vjik avatar xepozz avatar yiiliveext avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yii-auth-client's Issues

Dependabot can't resolve your PHP dependency files

Dependabot can't resolve your PHP dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Your requirements could not be resolved to an installable set of packages.
  Problem 1
    - Installation request for yiisoft/yii-web ^3.0@dev -> satisfiable by yiisoft/yii-web[3.0.x-dev].
    - Can only install one of: yiisoft/friendly-exception[dev-master, 1.0.0].
    - yiisoft/rbac 3.0.x-dev requires yiisoft/friendly-exception dev-master -> satisfiable by yiisoft/friendly-exception[dev-master].
    - yiisoft/yii-web 3.0.x-dev requires yiisoft/friendly-exception ^1.0 -> satisfiable by yiisoft/friendly-exception[1.0.0].
    - Installation request for yiisoft/rbac ^3.0@dev -> satisfiable by yiisoft/rbac[3.0.x-dev].

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Error authClient config

What steps will reproduce the problem?

return [
	'authClientCollection' => [
		'__class' => yii\authclient\Collection::class,
		'clients' => [
			'facebook' => [
				'__class'      => yii\authclient\clients\Facebook::class,
				'clientId'     => 'CLIENT_ID',
				'clientSecret' => 'CLIENT_SECRET',
			],
		],
	],
];

What's expected?

Client Facebook

What do you get instead?

Exception 'Error' with message 'Cannot access private property yii\authclient\Collection::$clients' 

in D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\di\src\AbstractContainer.php:396

Stack trace:
#0 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\di\src\AbstractContainer.php(362): yii\di\AbstractContainer::configure(Object(yii\authclient\Collection), Array)
#1 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\di\src\AbstractContainer.php(189): yii\di\AbstractContainer->buildFromConfig('authClientColle...', Array)
#2 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\di\src\AbstractContainer.php(131): yii\di\AbstractContainer->buildWithDefinition('authClientColle...', Array, Array)
#3 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\di\src\Container.php(55): yii\di\AbstractContainer->build('authClientColle...')
#4 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-core\src\base\Module.php(805): yii\di\Container->get('authClientColle...')
#5 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-auth-client\src\widgets\AuthChoice.php(154): yii\base\Module->get('authClientColle...')
#6 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-auth-client\src\widgets\AuthChoice.php(121): yii\authclient\widgets\AuthChoice->defaultClients()
#7 D:\Program Files\webs\terabytesoft\app-user\src\views\security\login.php(176): yii\authclient\widgets\AuthChoice->getClients()
#8 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\view\src\view\View.php(363): require('D:\\Program File...')
#9 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\view\src\view\View.php(239): yii\view\View->renderPhpFile('D:\\Program File...', Array)
#10 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\view\src\view\View.php(138): yii\view\View->renderFile('D:\\Program File...', Array, Object(app\user\controllers\SecurityController))
#11 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-web\src\Controller.php(97): yii\view\View->render('login', Array, Object(app\user\controllers\SecurityController))
#12 D:\Program Files\webs\terabytesoft\app-user\src\controllers\SecurityController.php(98): yii\web\Controller->render('login', Array)
#13 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-core\src\base\InlineAction.php(56): app\user\controllers\SecurityController->actionLogin()
#14 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-core\src\base\Controller.php(160): yii\base\InlineAction->runWithParams(Array)
#15 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-core\src\base\Module.php(542): yii\base\Controller->runAction('login', Array)
#16 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-web\src\Application.php(94): yii\base\Module->runAction('user/security/l...', Array)
#17 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-core\src\base\Application.php(544): yii\web\Application->handleRequest(Object(yii\web\Request))
#18 D:\Program Files\webs\terabytesoft\app-user\tests\public\index.php(21): yii\base\Application->run()
#19 D:\Program Files\webs\terabytesoft\app-user\tests\public\index.php(22): {closure}()
#20 {main}

Change Colletion.php:

private $clients = []; --> public $clients = [];

Exception 'TypeError' with message 'Return value of yii\authclient\Collection::getClient() must be an instance of yii\authclient\ClientInterface, array returned' 

in D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-auth-client\src\Collection.php:84

Stack trace:
#0 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-auth-client\src\Collection.php(65): yii\authclient\Collection->getClient('facebook')
#1 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-auth-client\src\widgets\AuthChoice.php(156): yii\authclient\Collection->getClients()
#2 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-auth-client\src\widgets\AuthChoice.php(121): yii\authclient\widgets\AuthChoice->defaultClients()
#3 D:\Program Files\webs\terabytesoft\app-user\src\views\security\login.php(176): yii\authclient\widgets\AuthChoice->getClients()
#4 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\view\src\view\View.php(363): require('D:\\Program File...')
#5 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\view\src\view\View.php(239): yii\view\View->renderPhpFile('D:\\Program File...', Array)
#6 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\view\src\view\View.php(138): yii\view\View->renderFile('D:\\Program File...', Array, Object(app\user\controllers\SecurityController))
#7 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-web\src\Controller.php(97): yii\view\View->render('login', Array, Object(app\user\controllers\SecurityController))
#8 D:\Program Files\webs\terabytesoft\app-user\src\controllers\SecurityController.php(98): yii\web\Controller->render('login', Array)
#9 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-core\src\base\InlineAction.php(56): app\user\controllers\SecurityController->actionLogin()
#10 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-core\src\base\Controller.php(160): yii\base\InlineAction->runWithParams(Array)
#11 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-core\src\base\Module.php(542): yii\base\Controller->runAction('login', Array)
#12 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-web\src\Application.php(94): yii\base\Module->runAction('user/security/l...', Array)
#13 D:\Program Files\webs\terabytesoft\app-user\vendor\yiisoft\yii-core\src\base\Application.php(544): yii\web\Application->handleRequest(Object(yii\web\Request))
#14 D:\Program Files\webs\terabytesoft\app-user\tests\public\index.php(21): yii\base\Application->run()
#15 D:\Program Files\webs\terabytesoft\app-user\tests\public\index.php(22): {closure}()
#16 {main}

Additional info

Q A
Yii version 3.0
Yii Auth Client version 3.0
Yii HTTP Client version 3.0
PHP version 7.1.23
Operating system Centos 7.0

Error install composer

What steps will reproduce the problem?

  • Install Composer

Additional info

Problem 1                                                                                                                                                                                                      remove yiisoft/yii-auth-client 3.0.x-dev\|keep yiisoft/yii-auth-client dev-master.
yiisoft/yii-auth-client 3.0.x-dev requires psr/http-factory-implementation 1.0 -> no matching package found.
yiisoft/yii-auth-client dev-master requires psr/http-factory-implementation 1.0 -> no matching package found.
Installation request for yiisoft/yii-auth-client ^3.0@dev -> satisfiable by yiisoft/yii-auth-client[3.0.x-dev].
Q A
Yii version ^3.0@dev
Yii Auth Client version ^3.0@dev
Yii HTTP Client version ^3.0@dev
PHP version 7.1.23
Operating system Centos 7

Problem with sessions in PHP 7.2

Q A
PHP version 7.2

Thanks to @FabrizioCaldarelli tests were fixed!
But for PHP 7.1 only. And not for 7.2 unfortunately.

Does anybody know what's the problem with sessions in 7.2?

session_set_cookie_params(): Cannot change session cookie parameters when headers already sent

I've seen the same error message in yii-web too.

Class 'Jose\Factory\JWKFactory' not found

I'm trying to use MS Graph AD authentication with OpenIdConnect

Using yii\authclient\OpenIdConnect raises this exception on authentication.
I tried adding it by:
composer require spomky-labs/jose

but I get:
Your requirements could not be resolved to an installable set of packages.

Problem 1
- mdanter/ecc v0.5.2 requires ext-gmp * -> the requested PHP extension gmp is missing from your system.
- mdanter/ecc v0.5.1 requires ext-gmp * -> the requested PHP extension gmp is missing from your system.
- mdanter/ecc v0.5.0 requires ext-gmp * -> the requested PHP extension gmp is missing from your system.
- spomky-labs/jose v7.1.0 requires mdanter/ecc 0.5.* -> satisfiable by mdanter/ecc[v0.5.0, v0.5.1, v0.5.2].
- Installation request for spomky-labs/jose ^7.1 -> satisfiable by spomky-labs/jose[v7.1.0].

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.