【问题标题】:Laravel 5.2 custom authentication without database or modelLaravel 5.2 自定义认证,无需数据库或模型
【发布时间】:2017-08-15 18:51:09
【问题描述】:

Laravel 5.2 自定义身份验证没有数据库或模型,而来自远程服务器的数据包含 true 或 false

【问题讨论】:

  • 你没有使用 oauth 什么的? Laravel 在其网站上有关于 oauth/social 登录的文档。如果你真的只有“真”或“假”,那么自定义中间件而不使用 Laravel 的 Auth 类可能是最好的方法。
  • 不,我没有使用任何类型的身份验证,甚至 laravel 身份验证,我有一个来自远程服务器的数组,该数组中有真或假,基于我想要创建的真假session.我是 laravel 的新手,所以使用中间件作为@Felippe Duarte 的答案是否正确

标签: php laravel laravel-5.2


【解决方案1】:

使用自定义身份验证中间件对路由进行分组:

Route::group(['middleware' => 'myauth'], function() {
    Route::get('...');
    Route::post('...');
});

然后创建一个中间件:

<?php

namespace App\Http\Middleware;

use Closure;

class Myauth
{
    public function handle($request, Closure $next, $guard = null)
    {
        if(session()->has('authenticated')) {
            return $next($request);    
        } else {
            return response('Unauthorized.', 401);
            //OR return redirect()->guest('/');
        }
    }
}

并且在您的应用程序的某些时候,您需要设置session('authenticated', true)

这是一种可行的方法,但您可以选择更好的方法,例如 OAuth。

【讨论】:

  • 如果我想使用身份验证而不是?
  • 我没听懂你的问题
  • 如果我想使用 Auth 外观而不是这个中间件解决方案进行登录
  • 您可以创建自定义警卫来做您想做的事。看看 laravel 文档:laravel.com/docs/5.2/authentication#adding-custom-guards
  • 所以在使用自定义保护时我可以避免验证数据库中的数据吗?
猜你喜欢
  • 2017-09-24
  • 2016-04-18
  • 2018-05-06
  • 2016-12-23
  • 2017-01-08
  • 1970-01-01
  • 2018-06-16
  • 1970-01-01
  • 2016-05-28
相关资源
最近更新 更多