interim commit after pull from server

darcs-hash:20080530142324-84dde-782c9f04f551447514f1557b9e80f8461a17771f.gz
This commit is contained in:
Evan Prodromou 2008-05-30 10:23:24 -04:00
parent 9210f95633
commit c501b7b925
8 changed files with 45 additions and 10 deletions

View File

@ -24,7 +24,7 @@ class AccesstokenAction extends Action {
parent::handle($args); parent::handle($args);
try { try {
$req = OAuthRequest::from_request(); $req = OAuthRequest::from_request();
$server = common_oauth_server(); $server = omb_oauth_server();
$token = $server->fetch_access_token($req); $token = $server->fetch_access_token($req);
print $token; print $token;
} catch (OAuthException $e) { } catch (OAuthException $e) {

View File

@ -44,9 +44,16 @@ class LoginAction extends Action {
return; return;
} }
# success! # success!
common_redirect(common_local_url('all', $url = common_get_returnto();
if ($url) {
# We don't have to return to it again
common_set_returnto(NULL);
} else {
$url = common_local_url('all',
array('nickname' => array('nickname' =>
$nickname))); $nickname));
}
common_redirect($url);
} else { } else {
$this->show_form(_t('Incorrect username or password.')); $this->show_form(_t('Incorrect username or password.'));
} }

View File

@ -26,7 +26,7 @@ class RequesttokenAction extends Action {
parent::handle($args); parent::handle($args);
try { try {
$req = OAuthRequest::from_request(); $req = OAuthRequest::from_request();
$server = common_oauth_server(); $server = omb_oauth_server();
$token = $server->fetch_request_token($req); $token = $server->fetch_request_token($req);
print $token; print $token;
} catch (OAuthException $e) { } catch (OAuthException $e) {

View File

@ -29,7 +29,10 @@ class UserauthorizationAction extends Action {
try { try {
$req = $this->get_request(); $req = $this->get_request();
$server = common_oauth_server(); $server = common_oauth_server();
list($consumer, $token) = $server->verify_request($req); $server->get_version($req);
$consumer = $server->get_consumer($req);
$token = $server->get_token($req, $consumer, "request");
$server->check_signature($req, $consumer, $token);
} catch (OAuthException $e) { } catch (OAuthException $e) {
$this->clear_request(); $this->clear_request();
common_server_error($e->getMessage()); common_server_error($e->getMessage());
@ -39,7 +42,8 @@ class UserauthorizationAction extends Action {
if (common_logged_in()) { if (common_logged_in()) {
$this->show_form($req); $this->show_form($req);
} else { } else {
common_return_to(common_local_url('userauthorization')); # Go log in, and then come back
common_set_returnto(common_local_url('userauthorization'));
common_redirect(common_local_url('login')); common_redirect(common_local_url('login'));
} }
} }
@ -56,8 +60,10 @@ class UserauthorizationAction extends Action {
if (!$req) { if (!$req) {
# XXX: may have an uncaught exception # XXX: may have an uncaught exception
$req = OAuthRequest::from_request(); $req = OAuthRequest::from_request();
if ($req) {
$this->store_request($req); $this->store_request($req);
} }
}
return $req; return $req;
} }
@ -69,6 +75,7 @@ class UserauthorizationAction extends Action {
function send_authorization() { function send_authorization() {
$req = $this->get_request(); $req = $this->get_request();
if (!$req) { if (!$req) {
common_user_error(_t('No authorization request!')); common_user_error(_t('No authorization request!'));
return; return;

View File

@ -9,5 +9,7 @@ This package requires PHP 5.x and the following PHP Pear libraries:
use the openidenabled.com libraries for OpenID auth sometime in the use the openidenabled.com libraries for OpenID auth sometime in the
future. Note that this is no longer distributed separately; it's only future. Note that this is no longer distributed separately; it's only
in the openidenabled.com OpenID PHP tarball. in the openidenabled.com OpenID PHP tarball.
http://openidenabled.com/php-openid/
- OAuth.php from http://oauth.googlecode.com/svn/code/php/
- markdown.php from http://michelf.com/projects/php-markdown/

View File

@ -23,7 +23,7 @@ require_once(INSTALLDIR.'/lib/omb.php');
class LaconicaOAuthDataStore extends OAuthDataStore { class LaconicaOAuthDataStore extends OAuthDataStore {
# We just keep a record of who's contacted us # We keep a record of who's contacted us
function lookup_consumer($consumer_key) { function lookup_consumer($consumer_key) {
$con = new Consumer('key', $consumer_key); $con = new Consumer('key', $consumer_key);

View File

@ -20,6 +20,7 @@
if (!defined('LACONICA')) { exit(1); } if (!defined('LACONICA')) { exit(1); }
require_once('OAuth.php'); require_once('OAuth.php');
require_once(INSTALLDIR.'lib/oauthstore.php');
define('OAUTH_NAMESPACE', 'http://oauth.net/core/1.0/'); define('OAUTH_NAMESPACE', 'http://oauth.net/core/1.0/');
define('OMB_NAMESPACE', 'http://openmicroblogging.org/protocol/0.1'); define('OMB_NAMESPACE', 'http://openmicroblogging.org/protocol/0.1');
@ -44,6 +45,14 @@ function omb_oauth_consumer() {
return $con; return $con;
} }
function omb_oauth_server() {
static $server = null;
if ($server) {
$server = new OAuthServer(new LaconicaOAuthStore());
}
return $server;
}
function omb_hmac_sha1() { function omb_hmac_sha1() {
static $hmac_method = NULL; static $hmac_method = NULL;
if (!$hmac_method) { if (!$hmac_method) {

View File

@ -525,6 +525,16 @@ function common_mtrand($bytes) {
return $enc; return $enc;
} }
function common_set_returnto($url) {
common_ensure_session();
$_SESSION['returnto'] = $url;
}
function common_get_returnto() {
common_ensure_session();
return $_SESSION['returnto'];
}
function common_timestamp() { function common_timestamp() {
return date('YmdHis'); return date('YmdHis');
} }