php - 在 Laravel 中登录身份验证而不使用数据库
问题描述
我对 laravel 有点陌生,我需要设置一个用户/密码登录系统,但我不能使用默认数据库。是否可以将信息凭证存储在数据库之外?一个例子会是什么样子?
解决方案
Laravel 的身份验证系统依赖于 Eloquent,因此依赖于数据库。使用Sushi,您可以使用 Array 作为数据库驱动程序。也许这将是一种适合您的方法。
另一个想法可能是使用Basic Authentication。您可以在您的网络服务器(Apache、Nginx 等)或 Laravel 中使用中间件进行设置。
这是这样一个中间件的样子。
namespace App\Http\Middleware;
use Closure;
class BasicAuthMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$authenticationHasPassed = false;
if ($request->header('PHP_AUTH_USER', null) && $request->header('PHP_AUTH_PW', null)) {
$username = $request->header('PHP_AUTH_USER');
$password = $request->header('PHP_AUTH_PW');
if ($username === config('auth.basic_auth.username') && $password === config('auth.basic_auth.password')) {
$authenticationHasPassed = true;
}
}
if ($authenticationHasPassed === false) {
return response()->make('Invalid credentials.', 401, ['WWW-Authenticate' => 'Basic']);
}
return $next($request);
}
}
(这个代码示例来自我的一篇博客文章,我需要一个身份验证功能而不使用数据库)。
推荐阅读
- google-sheets - 我可以过滤掉只有一行 A 列中的值的数据透视表结果吗?
- javascript - 节点 Js 错误:“错误预期 catch() 或返回,promise/catch-or-return”FIREBASE
- java - 带有附加功能的 Intent 的可空问题
- javascript - 数组和对象 [JavaScript]
- javascript - 剪切用户 id 猫鼬响应
- r - Rcpp:如何将R函数和Rcpp函数组合在一起制作一个包
- flutter - Flutter - 此函数的返回类型为 'FutureOr
',但不以 return 语句结尾 - c - 修复 cmd 窗口的尺寸
- excel - 在 Excel 中计算一年中的周数
- node.js - Polar accesslink API POST 用户不工作