惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recorded Future
Recorded Future
小众软件
小众软件
C
Check Point Blog
MyScale Blog
MyScale Blog
V
Visual Studio Blog
博客园_首页
J
Java Code Geeks
人人都是产品经理
人人都是产品经理
腾讯CDC
云风的 BLOG
云风的 BLOG
爱范儿
爱范儿
量子位
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
博客园 - 叶小钗
H
Help Net Security
T
The Blog of Author Tim Ferriss
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
美团技术团队
有赞技术团队
有赞技术团队
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
M
MIT News - Artificial intelligence
S
Secure Thoughts
U
Unit 42
Google Online Security Blog
Google Online Security Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
F
Full Disclosure
The GitHub Blog
The GitHub Blog
V2EX - 技术
V2EX - 技术
D
DataBreaches.Net
Webroot Blog
Webroot Blog
Y
Y Combinator Blog
The Last Watchdog
The Last Watchdog
aimingoo的专栏
aimingoo的专栏
W
WeLiveSecurity
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Martin Fowler
Martin Fowler
阮一峰的网络日志
阮一峰的网络日志
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
V2EX
T
Tailwind CSS Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog

Feed of "schmarty/gem-diamond"

issue when using indieauth[dot]com? gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond proxy for profile images gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond gem-diamond
gem-diamond
schmarty · 2024-08-26 · via Feed of "schmarty/gem-diamond"

共有 2 个文件被更改,包括 76 次插入0 次删除

@ -0,0 +1,72 @@
<?php
namespace App;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
class IndieAuthController extends \Schmarty\Micropubkit\IndieAuthController {
/**
* Extend MicropubKit login_start.
* If the regular IndieAuth-endpoint lookup fails, fall back to indielogin.com
*/
public function login_start(ServerRequestInterface $request): ResponseInterface {
$this->flash = $request->getAttribute('flash');
$this->loginPath = $this->loginFormPath($request);
$params = $request->getParsedBody();
if(!isset($params['me']) || empty($params['me'])) {
return $this->error_redirect('missing_url', 'Website URL is required');
}
list($authorizationURL, $error) = \IndieAuth\Client::begin($params['me'], $this->scopes);
if($error) {
// use indielogin instead
// NOTE: this duplicates a _bunch_ of \IndieAuth\Client::begin. Smells like
// a refactor maybe?
$state = \IndieAuth\Client::generateStateParameter();
$codeVerifier = \IndieAuth\Client::generatePKCECodeVerifier();
// set up session info so \IndieAuth\Client can find it later
$_SESSION['indieauth_entered_url'] = $params['me'];
$_SESSION['indieauth_state'] = $state;
$_SESSION['indieauth_code_verifier'] = $codeVerifier;
$_SESSION['indieauth_authorization_endpoint'] = 'https://indielogin.com/auth';
// HACK 2024-08-25: indielogin.com maybe only has our old client_id
$clientId = \IndieAuth\Client::$clientID;
$u = parse_url($clientId);
\IndieAuth\Client::$clientID = $u['scheme'] . '://' . $u['host'] . '/';
$authorizationURL = \IndieAuth\Client::buildAuthorizationURL(
"https://indielogin.com/auth",
[
'me' => $params['me'],
'redirect_uri' => \IndieAuth\Client::$redirectURL,
'client_id' => \IndieAuth\Client::$clientID,
'code_verifier' => $codeVerifier,
'state' => $state,
]
);
}
return $this->response->withHeader('Location', $authorizationURL)->withStatus(302);
}
// FIXME: remove this once indielogin.com allows https://xn--sr8hvo.ws/auth/id client ID
public function login_callback(ServerRequestInterface $request): ResponseInterface {
if ($_SESSION['indieauth_authorization_endpoint'] === 'https://indielogin.com/auth')
{
// HACK 2024-08-25: indielogin.com maybe only has our old client_id
$clientId = \IndieAuth\Client::$clientID;
$u = parse_url($clientId);
\IndieAuth\Client::$clientID = $u['scheme'] . '://' . $u['host'] . '/';
}
return parent::login_callback($request);
}
}
@ -13,6 +13,10 @@ $app = new Micropubkit\IndieAuthEngine(dirname(__FILE__).'/../views', [
'logo_uri' => \Config::$logo_uri,
]);
// override indieauth controller
$app->container->extend(Micropubkit\IndieAuthController::class)
->setConcrete(App\IndieAuthController::class);
// set up db
$app->container->addShared(App\DB::class)