このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
apricot:ext:session-auth [2020/05/25 10:37] y2sunlight [SessionAuth クラス] |
apricot:ext:session-auth [2020/05/25 21:03] y2sunlight [AuthController クラス] |
||
---|---|---|---|
行 151: | 行 151: | ||
{ | { | ||
// Auth | // Auth | ||
- | $r->get ('/ | ||
- | $r-> | ||
- | $r->get ('/ | ||
$r->get ('/ | $r->get ('/ | ||
$r-> | $r-> | ||
行 180: | 行 177: | ||
use Core\Input; | use Core\Input; | ||
- | use Core\Foundation\Security\UserAuth; | ||
use Core\Foundation\ErrorBag; | use Core\Foundation\ErrorBag; | ||
+ | use App\Foundation\Security\AuthUser; | ||
use App\Foundation\Controller; | use App\Foundation\Controller; | ||
use App\Foundation\ValidatorErrorBag; | use App\Foundation\ValidatorErrorBag; | ||
行 190: | 行 187: | ||
class AuthController extends Controller | class AuthController extends Controller | ||
{ | { | ||
- | public function __construct() | ||
- | { | ||
- | } | ||
- | |||
/** | /** | ||
* ログインフォーム表示 | * ログインフォーム表示 | ||
行 200: | 行 193: | ||
public function showForm() | public function showForm() | ||
{ | { | ||
- | if (UserAuth::check()) | + | if (AuthUser::check()) |
{ | { | ||
// 認証済ならトップ画面表示 | // 認証済ならトップ画面表示 | ||
行 206: | 行 199: | ||
} | } | ||
- | if (UserAuth:: | + | if (AuthUser:: |
{ | { | ||
// 自動認証できたらトップ画面表示 | // 自動認証できたらトップ画面表示 | ||
行 230: | 行 223: | ||
$inputs = Input:: | $inputs = Input:: | ||
- | if (!UserAuth:: | + | if (!AuthUser:: |
{ | { | ||
// ユーザが見つからない | // ユーザが見つからない | ||
行 238: | 行 231: | ||
// ログイン成功 | // ログイン成功 | ||
- | return redirect(UserAuth:: | + | return redirect(AuthUser:: |
} | } | ||
行 270: | 行 263: | ||
{ | { | ||
// セッションの破棄 | // セッションの破棄 | ||
- | | + | |
// ログイン画面表示 | // ログイン画面表示 | ||
行 278: | 行 271: | ||
</ | </ | ||
- | <WRAP left important 60%> | + | * **showForm()** : ログイン画面表示 |
- | TODO: 説明文 | + | * AuthUser::check() で認証チェックします。 |
- | </WRAP> | + | * 認証済の場合: |
+ | * ヘルパー関数redirect()でトップ画面にリダイレクトします。\\ \\ | ||
+ | * 未認証の場合: | ||
+ | * AuthUser:: | ||
+ | * 成功の場合: | ||
+ | * トップ画面にリダイレクトします。 | ||
+ | * 失敗の場合: | ||
+ | * ログイン画面( login )にリダイレクトします。 | ||
+ | |||
+ | * **login()** : ログイン(認証) | ||
+ | * バリデーション( validate() )を実行します。 | ||
+ | * バリデーション全体については[[apricot: | ||
+ | * バリデーションでエラーの場合: | ||
+ | * withInputs()で入力変数をフラッシュ変数に保存します。 | ||
+ | * withErrors()でバリデーションのエラーバッグをフラッシュ変数に保存します。 | ||
+ | * redirect()でログイン画面にリダイレクトするResponseオブジェクトをします。\\ \\ | ||
+ | * Input:: | ||
+ | * AuthUser:: | ||
+ | * 成功した場合: | ||
+ | * AuthUser:: | ||
+ | * 失敗した場合: | ||
+ | * withInputs()で入力変数をフラッシュ変数に保存します。 | ||
+ | * withErrors()でバリデーションのエラーバッグをフラッシュ変数に保存します。 | ||
+ | * redirect()でログイン画面にリダイレクトするResponseオブジェクトをします。 | ||
+ | |||
+ | * **login()** : ログアウト | ||
+ | * AuthUser:: | ||
+ | * ログイン画面にリダイレクトします。 | ||
+ | |||
+ | AuthUser の使用方法については、[[apricot: | ||
+ | |||
+ | > 認証コントローラのバリデーションは(コードが少量なので)[[apricot: | ||
\\ | \\ | ||
行 386: | 行 411: | ||
</ | </ | ||
</ | </ | ||
- | |||
- | <WRAP left important 60%> | ||
- | TODO: 説明文 | ||
- | </ | ||
- | |||
- | <WRAP left important 60%> | ||
- | TODO: ソースに@csr追加 | ||
- | </ | ||
\\ | \\ | ||
行 433: | 行 450: | ||
... | ... | ||
{{-- | {{-- | ||
- | @if(app_has(' | + | @if(app('auth.menu',false)) |
<ul class=" | <ul class=" | ||
<a id=" | <a id=" | ||
- | {{user()-> | + | {{AuthUser:: |
</a> | </a> | ||
<div class=" | <div class=" | ||
行 470: | 行 487: | ||
use App\Foundation\Controller; | use App\Foundation\Controller; | ||
+ | use App\Foundation\Security\AuthUser; | ||
/** | /** | ||
行 482: | 行 500: | ||
public function index() | public function index() | ||
{ | { | ||
- | $message = __(' | + | $message = __(' |
return render(' | return render(' | ||
} | } | ||
行 488: | 行 506: | ||
</ | </ | ||
- | * '' | + | |
+ | | ||
\\ | \\ | ||
行 509: | 行 528: | ||
[{{apricot: | [{{apricot: | ||
■ 正しいユーザ名とパスワードを入力して[ログイン]ボタンを押すと、ホーム画面が画面が表示されます。\\ | ■ 正しいユーザ名とパスワードを入力して[ログイン]ボタンを押すと、ホーム画面が画面が表示されます。\\ | ||
- | ■ [ログイン状態を保存する]をチェックすると、ログイン状態でブラウザを閉じてもログイン状態が保持され、再度Apricotにアクセスすると自動ログイン機能が働きます。自動ログインの有効期間は[[# | + | ■ [ログイン状態を保存する]をチェックすると、ログイン状態でブラウザを閉じてもログイン状態が保持され、再度Apricotにアクセスすると自動ログイン機能が働きます。自動ログインの有効期間は[[# |
[{{apricot: | [{{apricot: |