Comments (4)
If that is a middleware please don't get the request
from the $container
. It is better to do
$container["HttpBasicAuthentication"] = function ($request, $response) {
$route = $request->getAttribute("route");
$account = $route->getArgument("account");
$pdo = new PDO("sqlite:/tmp/{$account}.sqlite");
return new HttpBasicAuthentication([
"authenticator" => new PdoAuthenticator([
"pdo" => $pdo
])
]);
};
$app->add("HttpBasicAuthentication");
from slim-basic-auth.
I guess you could either create a custom authenticator or you could use container for setting up the middleware with something like (totally untested code):
use Tuupola\Middleware\HttpBasicAuthentication;
use Tuupola\Middleware\HttpBasicAuthentication\PdoAuthenticator;
$container = $app->getContainer();
$container["HttpBasicAuthentication"] = function ($container) {
$request = $container["request"];
$route = $request->getAttribute("route");
$account = $route->getArgument("account");
$pdo = new PDO("sqlite:/tmp/{$account}.sqlite");
return new HttpBasicAuthentication([
"authenticator" => new PdoAuthenticator([
"pdo" => $pdo
])
]);
};
$app->add("HttpBasicAuthentication");
Here are some examples on how to use container for setting up the middleware.
from slim-basic-auth.
Hi,
I understood the code but I don't understand where it is placed. Can you help?
My slim-framework index.php:
if (PHP_SAPI == 'cli-server') {
$url = parse_url($_SERVER['REQUEST_URI']);
$file = __DIR__ . $url['path'];
if (is_file($file)) {
return false;
}
}
require __DIR__ . '/../vendor/autoload.php';
session_start();
use \Slim\Middleware\HttpBasicAuthentication\AuthenticatorInterface;
use \Slim\Middleware\HttpBasicAuthentication\PdoAuthenticator;
$pdo = new \PDO("mysql:host=localhost;dbname=brainsoft", "root"," root", array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
$settings = require __DIR__ . '/../src/settings.php';
$app = new \Slim\App($settings);
$app->add(new \Slim\Middleware\HttpBasicAuthentication([
"path" => ["/chats"],
"authenticator" => new PdoAuthenticator([
"pdo" => $pdo
])
]));
require __DIR__ . '/../src/dependencies.php';
require __DIR__ . '/../src/middleware.php';
require __DIR__ . '/../src/routes.php';
$app->run();
Thanks for helping.
from slim-basic-auth.
Oh, @silentworks version is much better.
@rduarte You can put it in the place where you setup your middleware. Looking at the example code you pasted most likely src/middleware.php
. Note that you should add the HttpBasicAuthentication
middleware only once. Remove any old references to it.
from slim-basic-auth.
Related Issues (20)
- Access user/passwd from Authenticator within Slim route handler HOT 1
- Specify callback for the relaxed configuration parameter HOT 3
- Authenticator misinterpretation of "authorization" header HOT 5
- Ignore is not working as expected
- Accessing slim request/app from inside custom authenticator HOT 2
- Uncaught Error: Interface 'Psr\Http\Message\ResponseFactoryInterface' not found HOT 2
- HTTP_X_FORWARDED_PROTO HOT 1
- ignore list HOT 1
- After/Before Callbacks never called? HOT 3
- Class 'Tuupola\Middleware\HttpBasicAuthentication' not found HOT 32
- 401 error in postman HOT 3
- Interface ResponseFactoryInterface not found HOT 5
- Authentification error HOT 4
- Connecting over HTTP when I should not be able to HOT 1
- "final class" and CloudFlare proxification error HOT 1
- Why does local(HTTP) connection work but not online(HTTPS)? HOT 16
- Add request object back to the error handler. HOT 3
- Allow using any callable as a rule
- Do not assume callbacks are a closure
- Before & After Callbacks Never Triggered
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from slim-basic-auth.