dev-master
9999999-devauthenticate provider
MIT
The Requires
- php >=5.4
- chatbox/phputil dev-master
- chatbox/migrate dev-master
- chatbox/simple-kvs dev-master
- chatbox/box dev-master
authenticate provider
基本ユーザオブジェクトのファクトリとして働く。, (*1)
[invitation] ユーザデータの新規登録, (*2)
[reminder] ユーザ認証情報のリセット, (*3)
[serializer] ユーザ情報の永続化。セッションやトークンなど, (*4)
[loader] 永続化されたユーザ情報のロード, (*5)
セッションの抽象化はなし。, (*6)
セッション永続化まで完了, (*7)
続きトークン永続化へ, (*8)
pimpleへのセット&取り出し, (*9)
$signUp = new SignUp;
$passwordAuth = $signUp->authProvider("password"); $user = $passwordAuth->getUser($cred);
ユーザデータの作成, (*10)
$inv = $signUp->newInvitation($mail,$data); $inv->publish(); $inv = $signUp->loadInvitation($key); $email = $inv->getMailAdress(); $hoge = $inv->get("hoge");//get $data["hoge"] $user = $signUp->accept($inv); $passwordAuth->bind($user,$cred);
$serializer = $signUp->serializeProvider("session"); $key = $serializer->save($user); //セッションエントリキーやトークンなど $user = $serializer->load($key); $serializer->reset($user);
$reminder = new Reminder($user); $reminder->publish(); $reminder = Reminder::load($key); $signUp->accept($reminder)
ユーザオブジェクトなどアプリケーションロジックに関わる部分の独立性は維持しつつも、 トークンやログイン試行回数制限、セッション埋め込みなどの処理を賄う。, (*11)
セッションからログイン状態を読み取ってユーザオブジェクトを取得する。, (*12)
httpパラメータからログイン情報をうけとり、検証し、ユーザオブジェクトを生成してセッションに保存する。, (*13)
− トークン − ソーシャルID − ID & パスワード − セッション埋込キー, (*14)
− ユーザは繰り返し使用可能な継続認証情報を持っているため、特別な処理は不要(再ログイン形式) − 毎回認証情報を送信させる処理が手間なため、セッションやクッキーにキーを埋め込んで省略ログイン可能なように計らう。, (*15)
$wap = new \Wap\Wap($credLoaders,$userFactory); // or use configuration $wap = \Wap\Wap::forge(); $user = $wap->login(); // to seiralize $wap->setSession();
毎回認証情報を生でやりとりし続けるのがアレ、とか言う理由で発行されるトークン系の処理。, (*16)
− 第一回目で重た目の認証手続きが取られる。 − 認証手続きが成功したらトークンを発行して、トークン情報を返送する。 − トークンで二回目の簡便な認証処理を行う。 − トークンは利用される度に、利用日時を更新する。, (*17)
− 送られてきたトークンが有効期限切れの場合でトークン再発行期間内の場合、新しいトークンを返送する。, (*18)
$wap = new \Wap\Wap(); $user = $wap->login();//重た目の認証 if($wap->getLoginType($user) === $socialCredLoader){ $token = $wap->publishToken() $response->setToken($token); }else if($wap->getLoginType($user) === $socialCredLoader && $wap($expired)){ $response->setToken($wap->rePublishToken); } // to seiralize $wap->setSession();
findByPk($pk) : プライマリーキーからオブジェクトを生成する。, (*19)
getId : 識別子 checkCred : 認証識別子のチェック方法を決める getCred : パスワードリセット時に返すべき情報のまとめ isLoginable : ログイン可能か決める。通常常にtrueだがbanやactivatedを実装するときはその限りでない。, (*20)
credベースのログインと、userオブジェクトベースのログイン, (*21)
ログインという処理は単なるuserオブジェクトのファクトリではなく、 パスワードリセットフィールドやログイン試行ログの消去を兼ねている。, (*22)
その他、Sentryにはuserのfindエントリやlogoutエントリ、userオブジェクトを用いたcheck機構がある, (*23)
ソシャゲとかで、statusとかのデータAPIを叩いた時に 認証ユーザ(自分の)の情報か他人の情報か観るときとかに使うっぽい, (*24)
− ユーザオブジェクトのファクトリ − 試行回数の制御 − cred情報の, (*25)
authenticate provider
MIT