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

推荐订阅源

量子位
T
The Blog of Author Tim Ferriss
U
Unit 42
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
Vercel News
Vercel News
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
Blog — PlanetScale
Blog — PlanetScale
I
InfoQ
Y
Y Combinator Blog
F
Full Disclosure
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
S
SegmentFault 最新的问题
腾讯CDC
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
Recent Commits to openclaw:main
Recent Commits to openclaw:main
The Register - Security
The Register - Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
F
Fortinet All Blogs
C
CXSECURITY Database RSS Feed - CXSecurity.com
Hugging Face - Blog
Hugging Face - Blog
T
Threatpost
GbyAI
GbyAI
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
L
LangChain Blog
T
Tenable Blog
C
Cisco Blogs
T
Threat Research - Cisco Blogs
Google Online Security Blog
Google Online Security 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)