Introduction ¶
EOAuthUserIdentity class implements IUserIdentity Yii interface and the OAuth protocol to authenticate a user.
Based on Google's software.
Note: Please post the issues on Github
Download ¶
Resources ¶
- OAuth
- InDaHouseRulez SL
- Google API DFP PHP Example web application This link is currently broken, here is a working link
- Source
Documentation ¶
Requirements ¶
- Yii 1.0 or above
Installation ¶
- Extract the release file under
protected/extensions/eoauth
Usage ¶
Use this sample actions for login/logout with Google:
public function actionLogin() {
Yii::import('ext.eoauth.*');
$ui = new EOAuthUserIdentity(
array(
//Set the "scope" to the service you want to use
'scope'=>'https://sandbox.google.com/apis/ads/publisher/',
'provider'=>array(
'request'=>'https://www.google.com/accounts/OAuthGetRequestToken',
'authorize'=>'https://www.google.com/accounts/OAuthAuthorizeToken',
'access'=>'https://www.google.com/accounts/OAuthGetAccessToken',
)
)
);
if ($ui->authenticate()) {
$user=Yii::app()->user;
$user->login($ui);
$this->redirect($user->returnUrl);
}
else throw new CHttpException(401, $ui->error);
}
public function actionLogout() {
Yii::app()->user->logout();
// Redirect to application home page.
$this->redirect(Yii::app()->homeUrl);
}
License ¶
Some time ago I developed this extension for InDaHouseRulez SL. I no longer work there, but I still support the extension.
The extension was released under the MIT license, so I made a fork on GitHub, where you'll find the latest version:
https://github.com/jorgebg/yii-eoauth
Change Log ¶
September 10, 2010 ¶
- Initial release.
avoid meeting PHP standard issue
Hi,CGeorge, following your guide to test this extension, there is an issue after i logining and allowing in google to use oauth
EOAuthUserIdentity::authenticate() [<a href='eoauthuseridentity.authenticate'>eoauthuseridentity.authenticate</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "OAuthToken" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition
That is a standard PHP deserialization issue.
The way to avoid this issue is that, set to load the extensions in the main.php
'import'=>array( 'application.models.*', 'application.components.*', 'ext.eoauth.*', 'ext.eoauth.lib.*', ),
Would it work with ouath2?
Huh?
Thank you!!!
You saved my life!! I'm using your classes to connect with Linkedin, that works fine!!
Question
That's work fine for the authentification, but what about calling services after? Like http://api.linkedin.com/v1/people/~
Is it possible with your extention?
POST?
How to make it work with POST requests instead of GETs?
how to get information after getAccessToken?
it's nice extension but it really lacks documentation, I even could'nt reach right information about how to use the token even from google-api-dfp-php (the api which this extension is based on).
I'm not sure if this part is included in this api or not!!
How to connect with linkedin profile
@Burzum : I have install this extension its working perfectly. I can login to my application with my gmail accoount automatically. But i dont know how to connect to my application with my linkedin profile? where i need to make changes??
How to connect with linkedin profile
I am getting error like :
Error 401
oauth_problem=SCOPE_INVALID%20%3A%20http%3A%2F%2Fapi.linkedin.com%2Fv1%2Fpeople%2F~%3A%28karmrajsinh
I have make following changes.
$ui = new EOAuthUserIdentity( array( //Set the "scope" to the service you want to use 'scope'=>'http://api.linkedin.com/v1/people/~:(myfirstname,mylastname)', 'provider'=>array( 'request'=>'https://api.linkedin.com/uas/oauth/requestToken', 'authorize'=>'https://api.linkedin.com/uas/oauth/authenticate', 'access'=>'https://api.linkedin.com/uas/oauth/accessToken', ) ) );
twitter oauth not working
Hi in my case twitter authenticate not working.
After authorize my application doesn't happen redirect on my authorize url.
any solution ?
And no errors ((
how to access details after login.
Hi,
I installed this application on my application.It is working fine but it returns a token.
i want to get user details such as username,email etc .how to get/retrieve this information array?
POST?
can someone please help how to send POST instead of GET?
using POST instead of GET
@raxy
I've modified GetTokenFromUrl function in EOAuthUtils.php. It looks like that:
private static function GetTokenFromUrl($data, $endpoint = null) { $ch = curl_init(); if (!isset($endpoint)) { // use GET curl_setopt($ch, CURLOPT_URL, $data); } else { // use POST (you need to provide $endpoint variable in function call) curl_setopt($ch, CURLOPT_URL, $endpoint); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.