私は次のようにします私は定義app/Http/Middleware/HasAccessToBilling.php
に
Route::group(['prefix' => 'auth'], function() {
Route::get('/', ['as' => 'auth', 'uses' => '[email protected]']);
Route::post('/', ['as' => 'auth.attempt', 'uses' => '[email protected]']);
Route::delete('/', ['uses' => '[email protected]']);
Route::any('destroy', ['as' => 'auth.destroy', 'uses' => '[email protected]']);
});
Route::group(['prefix' => 'billing', 'namespace' => 'Billing', 'middleware' => ['App\Http\Middleware\HasAccessToBilling']], function()
{
Route::any('/', ['as' => 'billing', 'uses' => '[email protected]']);
Route::get('profile', ['as' => 'billing.profile', 'uses' => '[email protected]']);
});
2):
<?php namespace App\Http\Middleware;
use App\Library\Auth;
use Closure;
use Illuminate\Http\Request;
class HasAccessToBilling
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
if (Auth::hasAccessTo('billing', $request)) {
return $next($request);
}
return redirect()->route('auth');
}
}
3)app/Library/Auth.php
で:
1)routes.php
にIがルートグループにミドルウェアを定義します(カスタム lib)
(モデルのフォルダを作成することを忘れないでください)
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Hash;
use Closure;
class User extends Model
{
const USERNAME_MAXLEN = 2;
const PASSWORD_MAXLEN = 5;
protected $table = 'users';
protected $fillable = ['username', 'email', 'password', 'active', 'deleted'];
public function checkPassword($password)
{
return Hash::check($password, $this->password);
}
public function updateAndCall($attributes = [], Closure $closure) {
if(isset($attributes['password'])) {
$attributes['password'] = Hash::make($attributes['password']);
}
$this->update($attributes);
return $closure($this);
}
public static function createAndCall($attributes = [], Closure $closure) {
if(isset($attributes['password'])) {
$attributes['password'] = Hash::make($attributes['password']);
}
$Record = self::create($attributes);
return $closure($Record);
}
}
5)app\Http\Controllers\AuthController.php
中:app/Models/User.php
で
4)
<?php namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Library\Auth;
class AuthController extends Controller
{
public function index()
{
return view('auth.index');
}
public function attempt(Request $request)
{
$realms = $request->get('realm', Auth::REALMS);
if (!is_null($realms)) {
$realms = explode(',', $realms);
}
$auth = Auth::attempt($realms, $request);
if ($auth === false) {
return $this->forbidden('Username and/or Password invalid!');
}
foreach ($realms AS $realm) {
if (!Auth::hasAccessTo($realm, $request)) {
return $this->forbidden('Access denied');
}
}
if (isset($auth['remember-token'])) {
$this->setCookie('remember-token', $auth['remember-token'], 525600); // 1 year
}
return $this->ok(null, ['redirectTo' => $realms[0]]);
}
public function destroy(Request $request)
{
$realms = $request->get('realm', Auth::REALMS);
if (is_array($realms) AND !empty($realms)) {
$realms = explode(',', $realms);
}
Auth::destroy($request, $realms);
$this->deleteCookie('remember-token');
return redirect()->route('auth');
}
}
あなたが望むどのようにそれを使用して自由に記入( ;
迅速な対応に感謝します。私はあなたのコンセプトを調査し、すべてがチェックアウトしたら適用します。もし私がそうするなら、私は答えとしてマークします!再び、これについての支援に感謝します。 –
あなたが与えた例で示された概念は、私の問題の根本原因を解消するのに大きな時間を費やし、セッションの処理を適切に実装する方法を教えてくれました。私が発見したのと同じ問題を抱える人を助けるために、すべてを安定させた時の結果を投稿します。 もう一度お世話になりました! –
@ user3124770私はそれがあなたにとって最高のソリューションであることを本当に願っています。 – num8er