読者です 読者をやめる 読者になる 読者になる

(Movable Type) 認証系のロジックを追う

Auth/MT.pm

パスワードの照合

引数

 $auth → ?

 $author → ?

 $pass → 平文のパスワード

 $crypted → 暗号化したパスワード

 $error_ref → ?

sub is_valid_password {

    # 引数の受け取り
    my $auth = shift;
    my ( $author, $pass, $crypted, $error_ref ) = @_;
    $pass ||= '';

    # DBに保存されているパスワードを抜き出す
    my $real_pass = $author->column('password');
    if ( ( !$real_pass ) || ( $real_pass eq '(none)' ) ) {
        return 0;
    }
    return $crypted
        ? $real_pass eq $pass
        : crypt( $pass, $real_pass ) eq $real_pass;
}

ログインの処理

lib/MT/App.pm の login サブルーチン

セッションの開始

? の start_session サブルーチン

クッキーの書き込み

lib/MT/App.pm の bake_cookie サブルーチン