
рдпрд╣ рд▓реЗрдЦ
рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЗ рдмрд┐рдирд╛ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЙрддреНрддрд░ рд╣реИ "рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░реЗрдВред"
рдпрд╣ yii1 рд╕реЗ yii2 рддрдХ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рддрдХрдиреАрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдЗрд╕рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ yii1 рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╢рд╛рдЦрд╛рдПрдБ рдФрд░ yii2 рдкрд░ рдЗрд╕рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рд╣реА рд╣реЛрд╕реНрдЯ рдореЗрдВ рдПрдХ рд╣реА рдбреЛрдореЗрди рдкрд░ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ, рдЫреЛрдЯреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ (рдкреГрд╖реНрдареЛрдВ, рдирд┐рдпрдВрддреНрд░рдХреЛрдВ, рдореЙрдбреНрдпреВрд▓, рдЖрджрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд╣рд▓рд╛ рднрд╛рдЧ рдореМрдЬреВрджрд╛ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдореЗрдВ yii2 рдкрд░ рдПрдХ рдирдВрдЧреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛, рдЕрд░реНрдерд╛рддред рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд┐рдП рдмрд┐рдирд╛ рджреЛрдиреЛрдВ рд╢рд╛рдЦрд╛рдПрдВ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред
рдЙрд╕рдХреЗ рдмрд╛рдж рд╕рдмрд╕реЗ рдордиреЛрд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд░реВрдк рд╕реЗ рдХрдард┐рди рдЪрд░рдг рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ: рдЖрдкрдХреЛ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ 2 рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХрд▓ рдХрд░реВрдВрдЧрд╛: рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдбрд┐рдЬрд╝рд╛рдЗрди рдФрд░ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдгред
рдмреЛрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдбрд┐рдЬрд╛рдЗрди рдХреА рдирдХрд▓ рдХреЛ рдкрд╣рд▓рд╛ рд╕реНрдерд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрд╢реБрдн рд╣реИрдВ, рддреЛ рдЖрдк рдкреБрд░рд╛рдиреЗ "1 рдореЗрдВ 1" рдХреЛ рдХреЙрдкреА / рд░рд┐рд╡рд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рд░рд┐рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХрд┐рдпрд╛ред рдпрд╛рдиреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЛ рдХрд╛рдлреА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдХрд╛рдо рдмреЗрд╡рдХреВрдл рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдП - рдореИрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдкрд░ рдмрд╣реБрдд рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ, рдХреЛрдИ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдмреИрдХрдПрдВрдб рдФрд░ рдХрдВрд╕реЛрд▓ рдХреЛ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рд╡рд░реАрдпрддрд╛рдУрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ - рдЖрдкрдХреЛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдХрд╛рдо рдХреА рдорд╛рддреНрд░рд╛ рдХрд╛рдлреА рдмрдбрд╝реА рд╣реЛрдЧреАред
рдПрдВрдб-рдЯреВ-рдПрдВрдб рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдФрд░ рдХрдо рдХрд╛рдо рд╣реЛрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдХреЛрдИ рд░рд╣рд╕реНрдпреЛрджреНрдШрд╛рдЯрди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд▓реЗрдЦ рдХрд╛ рдЪрд░рд┐рддреНрд░: рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ред
рдпрджрд┐ рдпрд╣ рдЖрдкрдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рддреЛ рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЪрд░рдг рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реИ, рдлрд┐рд░, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдкрдВрдЬреАрдХрд░рдг, рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рдкрд╛рд╕рд╡рд░реНрдб рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐, рдЖрджрд┐) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдкреБрд░рд╛рдиреА рд╕рд╛рдЗрдЯ рдкрд░ рд░рд╣рддрд╛ рд╣реИред рдФрд░ yii2 рдкрд░ рдирдИ рд╢рд╛рдЦрд╛ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
Yii1 / yii2 рдХрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддрдВрддреНрд░ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИ рдФрд░ рдЖрдкрдХреЛ yii2 рдХреЛрдб рдХреЛ рдЯреНрд╡рд┐рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджреЗрдЦ рд╕рдХреЗред рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдбреЗрдЯрд╛ рд╕рддреНрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рд╕рддреНрд░ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рд╕рд╣рдордд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред
Yii1 рд╕реЗ рдПрдХ рд╕рддреНрд░ рдореЗрдВ, рдЗрд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
print_r($_SESSION); Array ( [34e60d27092d90364d1807021107e5a3__id] => 123456 [34e60d27092d90364d1807021107e5a3__name] => tester [34e60d27092d90364d1807021107e5a3__states] => Array ( ) )
рдпрд╣ рдЖрдкрдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЪреЗрдХ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, prefixKey рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ yii1 рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдбреЗрдЯрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ yii1 рд╕реЗ рдЪрд╛рд╣рд┐рдП
Yii::app()->user->getStateKeyPrefix() Yii::app()->name Yii::app()->getBasePath() Yii::app()->getId() get_class(Yii::app()->user)
рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреГрд╖реНрда рдмрдирд╛рдирд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рдирд╛ рд╣реИ - рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
Yii2 рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг
Yii2 рдореЗрдВ, рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдШрдЯрдХ (
\ yii \ web \ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ) рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдЬреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИред
- рдЗрд╕рдХреЗ getIdentity () рдореЗрдердб рдореЗрдВ, renewAuthStatus () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рддреНрд░ $ idParam рдЪрд░ рд╕реЗ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ '__id' рд╡рд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ);
- рд╕рддреНрд░ рдЪрд░ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдХреБрдВрдЬреА $ idParam (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрдк / рдореЙрдбрд▓ / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИред
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИредрдмреЗрд╢рдХ, yii1 рдореЗрдВ, рд╕рддреНрд░ рдПрдХ рдЕрд▓рдЧ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрд╕реА рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП yii2 рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдпрд╣ yii1 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:1.
yi / web / user in
config / web.php рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реНрдерд┐рддрд┐ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдШрдЯрдХ рдХреЗ рд╡рд░реНрдЧ рдХреЛ рдмрджрд▓реЗрдВред
'components' => [ 'user' => [ 'class' => 'app\models\WebUser', 'identityClass' => 'app\models\User', ], ]
2.
app \ рдореЙрдбрд▓ \ WebUser рдореЗрдВ
$ idParam рдХреЗ рдореВрд▓реНрдп рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВред
public function init() {
рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рддрд╣рдд рдХреБрдЫ рддрд░реАрдХреЗ рд╣реЛрдВрдЧреЗ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ yii1 рд╕реЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдВрдЧреЗред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рдореВрд▓
ykey1 рд╕реЗ рдореВрд▓
_keyPrefix (рдпрд╛ рдпрд╣рд╛рдБ рддрдХ рдХрд┐
idParam ) рдХреЛ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреА рдкреАрдврд╝реА рдХрд╛ рдЕрдиреБрдХрд░рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрд╣ рдирд┐рд░реНрджреЗрд╢ "рдирдХрд▓ рдпреЛрдЧреНрдп рдХрдЪрд░рд╛" рдХреА рддрд░рд╣ рд╣реЛрдЧрд╛ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ ykey1 рдореЗрдВ _keyPrefix рд▓рдЧрднрдЧ рд╕реНрдерд┐рд░ рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдШрдЯрдХ рдХреЗ рд╡рд░реНрдЧ рдирд╛рдо рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдИрдбреА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдЖрд╡реЗрджрди рдХреЗ рд╕реНрдерд╛рди рдФрд░ рдЙрд╕рдХреЗ рдирд╛рдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдЕрдЧрд░ рд╣рдо рдЦреБрдж рдХреЛ рдХреЗрд╡рд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛рд░реНрдп рддрдХ рд╣реА рд╕реАрдорд┐рдд рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ _keyPrefix рдореВрд▓реНрдп рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рд╕реЗ рдХрд╛рдо рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХрд╛рдлреА рдХрдореА рдЖрддреА рд╣реИред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рд╣реЛрдВрдЧреЗред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдШрдЯрдХ (рдПрдкреНрд▓рд┐рдХреЗрд╢рди \ рдореЙрдбрд▓ \ WebUser) namespace app\models; use yii\web\User; class WebUser extends User { public $autoRenewCookie = false; private $_keyPrefix; private $paramsYii1 = [
рдФрд░ рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реАрдХреЗ (рд╡реЗрдмрдЙрдЬрд╝рд░)ред
рдЖрд╕рд╛рди рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧред public function getIdParamYii1() { return $this->getStateKeyPrefix() . '__id'; } public function getStateKeyPrefix() { if ($this->_keyPrefix !== null) return $this->_keyPrefix; $class = $this->paramsYii1['classUserComponent']; return $this->_keyPrefix = md5('Yii.' . $class . '.' . $this->getAppIdYii1()); } public function getAppIdYii1() { if ($this->paramsYii1['appId']) return $this->paramsYii1['appId']; return $this->paramsYii1['appId'] = sprintf('%x', crc32($this->getBasePathYii1() . $this->paramsYii1['appName'])); } private function getBasePathYii1() { $basePath = realpath(\Yii::getAlias('@app') . DIRECTORY_SEPARATOR . $this->paramsYii1['relPath']); if (!$basePath) throw new InvalidConfigException('basePath yii1 .'); return $basePath; }
рдХреЗрд╡рд▓ " рд╕рддреНрд░ рдХреБрдВрдЬреА рдХреЗ рдкреНрд░рд╛рд░реВрдк рдкрд░ рд╕рд╣рдорддрд┐ " рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЕрдкрдШрдЯрди рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, yii2 рдкрд░ рдПрдХ рдирдИ рд╢рд╛рдЦрд╛ рдореЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ yii1 рдореЗрдВ рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдорд╛рдиреНрдпрддрд╛ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреА рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЗрд╕реЗ рд░реЛрдХрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдлрд┐рд╕рд▓рди рдорд╛рд░реНрдЧ рдЖрдЧреЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
Yii2 рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрд┐рди
рд╕рддреНрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣рдг рдкреНрд░рд╛рд░реВрдк рдкрд░ рд╕рд╣рдорддрд┐ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрд┐рди "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ" рднреА yii2 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдореИрдВ yii1 рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рдкрддреНрд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд┐рдП рдмрд┐рдирд╛ рдХреЙрдореНрдмреИрдЯ рдореЛрдб рдореЗрдВ yii2 рдкрд░ рд▓реЙрдЧрд┐рди рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЧрд▓рдд рдорд╛рдирддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдереЛрдбрд╝рд╛ рд╕рдордиреНрд╡рдп рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд░реЗрдЧреАредрдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдВрдЬреАрдХрд░рдг, рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ, yii1 рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, yii2 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЙрдЧрд┐рди рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ yii2 рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЧрдП рдкрд╛рд╕рд╡рд░реНрдб рдХреА рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдзрд┐ рд╕рдордЭ рд╕рдХрддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реИрд╢реЗрдб рдФрд░ Yii1 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред
рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдХрд┐ рдпреЗ рддрд░реАрдХреЗ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ Yii2 рдореЗрдВ, рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдорд╛рдирдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЙрдбрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ:
public function validatePassword($password) { return \Yii::$app->getSecurity()->validatePassword($password, $this->password); }
рдЙрд╕рдХреЗ рдмрд╛рдж, yii
\ base \ Security (Yii2) рд╕реЗ рд╡реИрджреНрдпреБрддрд╢рдмреНрдж
($ рдкрд╛рд╕рд╡рд░реНрдб, $ рд╣реИрд╢) рд╡рд┐рдзрд┐ рджреЗрдЦреЗрдВрд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ () public function validatePassword($password, $hash) { if (!is_string($password) || $password === '') { throw new InvalidArgumentException('Password must be a string and cannot be empty.'); } if (!preg_match('/^\$2[axy]\$(\d\d)\$[\.\/0-9A-Za-z]{22}/', $hash, $matches) || $matches[1] < 4 || $matches[1] > 30 ) { throw new InvalidArgumentException('Hash is invalid.'); } if (function_exists('password_verify')) { return password_verify($password, $hash); } $test = crypt($password, $hash); $n = strlen($test); if ($n !== 60) { return false; } return $this->compareString($test, $hash); }
рдФрд░ рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЙрдбрд▓ рдореЗрдВ Yii1 рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
public function hashPassword($password) { return CPasswordHelper::hashPassword($password); }
рдлрд┐рд░
yii \ Framework \ utils \ CPasswordHelper рд╕реЗ
VerPassword ($ рдкрд╛рд╕рд╡рд░реНрдб, $ рд╣реИрд╢) рд╕реЗ
рддреБрд▓рдирд╛ рдХрд░реЗрдВhashPassword () public static function hashPassword($password,$cost=13) { self::checkBlowfish(); $salt=self::generateSalt($cost); $hash=crypt($password,$salt); if(!is_string($hash) || (function_exists('mb_strlen') ? mb_strlen($hash, '8bit') : strlen($hash))<32) throw new CException(Yii::t('yii','Internal error while generating hash.')); return $hash; }
рдпрджрд┐ рд╣реИрд╢рд┐рдВрдЧ рдФрд░ рд╕рддреНрдпрд╛рдкрди рдХреЗ рддрд░реАрдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ
рдРрдкреНрдкрд▓ / рдореЙрдбрд▓ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ
рд╡реИрд▓рд┐рдбреЗрдЯрдкрд╛рд╕рд╡рд░реНрдб () рдореЗрдВ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмрдХреНрд╕реЗ рд╕реЗ, Yii1 / Yii2 рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢ рд╕рдВрдЧрдд рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдВрдЧреЗ рдпрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рдореЗрд▓ рдЦрд╛рдПрдВрдЧреЗред рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдПрдХ рдЙрдЪреНрдЪ рдбрд┐рдЧреНрд░реА рдХреЗ рд╕рд╛рде, Yii1 рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╣реИрд╢рд┐рдВрдЧ рддрд░реАрдХреЗ рдФрд░ Yii2 рдкрд░ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдЧреАред
Yii1 рд╕реЗ рдХреБрдХреАрдЬрд╝ рдкрд░ Yii2 рдореЗрдВ рдСрдЯреЛрд▓реЙрдЧрд┐рди
рдЪреВрдВрдХрд┐ Yii2 рдкрд░ рдПрдХ рд╢рд╛рдЦрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреА рд╣реИ рдХрд┐ Yii1 рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдбреЗрдЯрд╛ рдХрд╛ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВ рдХреБрдХреА рджреНрд╡рд╛рд░рд╛ рдСрдЯреЛ-рд▓реЙрдЧрд┐рди рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рдпрджрд┐ рдРрд╕рд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕реЗ рддреНрдпрд╛рдЧрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдереНрд░реЗрдб (рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ) рдХреЛ рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ Yolog2 рдкрд░ рдСрдЯреЛрд▓реЙрдЧрд┐рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рджрд┐рдЦрддрд╛ред рдпрд╛рдиреА рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдорд▓реЗ:
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг Yii1 рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Yii2 рд╢рд╛рдЦрд╛ Yii1 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреБрдХреАрдЬрд╝ рдкрд░ рдСрдЯреЛрд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдЪ рдХрд╣реВрдВ рддреЛ, рдпрд╣ рдПрдХ рдлреНрд░реЙрдб рд╡рд┐рдХреГрддрд┐ рд╣реИред рдпрд╣ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣рд╛рдБ рд╕рд┐рд░реНрдл рдкреНрд░рд╡рд╛рд╕ рдХреЗ рд╕рдЪреЗрдд рдФрд░ рдиреНрдпрд╛рдпрд╕рдВрдЧрдд рдХрд╛рд░реНрдп рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рд╛рдЗрдХрд┐рд▓ рдХреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХреЗ рдмреАрдЪ рдХреА рд░реЗрдЦрд╛ рдЧреБрдЬрд░рддреА рд╣реИред
рдХрдард┐рдирд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ Yii рдирдХрд▓реА рдХреБрдХреАрдЬрд╝ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рддрд░реАрдХреЛрдВ рдкрд░ рд╕рд╣рдордд рд╣реЛрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
- Yii2 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдШрдЯрдХ рд╣реИрдВ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ( \ yii \ web \ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ), рдЕрдиреБрд░реЛрдз , рд╕реБрд░рдХреНрд╖рд╛ + рдХреБрдХреАрдХрд░рдг
- Yii1 рдореЗрдВ: CWebUser , CHttpRequest , CSecurityManager , CStatePersister , CCookieCollection
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдорд╛рдорд▓реЗ рдЕрд▓рдЧ рд╣реИрдВред рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рд╕рд╛рдЗрдХрд┐рд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдЯреЛрд▓реЙрдЧ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред
Yii2 рдореЗрдВ, рд╣рдо
getIdentityAndDurationFromCookie () рдореЗрдердб рдореЗрдВ
\ yii \ web \ User рд╕реЗ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ, рд╡рд╛рдВрдЫрд┐рдд рдХреБрдХреА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП:
$value = Yii::$app->getRequest()->getCookies()->getValue($this->identityCookie['name']);
рд▓реЗрдХрд┐рди рд╡рд╣ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдЧреНрд░рд╣
Yii :: $ рдРрдк-> getRequest () -> getCookies () рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐
рдЕрдиреБрд░реЛрдз рдХреБрдХреАрдЬрд╝ рдореЗрдВ
рд▓реЛрдбрдХреБрдХрд┐рдпреЛрдВ () рдореЗрдВ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
GetIdentityAndDurationFromCookie () рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдХреЗ рдХрд╛рдВрдЯрд╛ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
- рд╕реБрдкрд░ рдХреБрдХреА $ _COOKIE рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдХреБрдХреА рдХреЛ рд╕реАрдзреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рддрд╛рдХрд┐ рдорд╛рдирдХ рдХреБрдХреА рд▓реЛрдбрд┐рдВрдЧ рддрдВрддреНрд░ рдХреЗ рдЕрдиреБрдХреВрд▓ рди рд╣реЛред
рдкрд╣рдЪрд╛рди рдХреБрдХреА рдХрд╛ рдирд╛рдо рд╕рд┐рд░реНрдл _keyPrefix рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдпрд╛ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛)ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдорд╛рдирдХ $ рдкрд╣рдЪрд╛рди рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ init () ред
- рдкрд░рд┐рдгрд╛рдореА рдХреБрдХреА рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдВ "рд▓рдЧрднрдЧ yii1 рдореЗрдВред" рдЬреИрд╕реА рдЖрдкрдХреА рдЗрдЪреНрдЫрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ CSecurityManager рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИред
рдиреАрдЪреЗ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЛрдб рд╣реИред
рд╣рдо рдРрдк / рдореЙрдбрд▓ / рд╡реЗрдмрдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ1. рдирд╛рдо рдкрд╣рдЪрд╛рди рдХреБрдХреА рдХреБрдХреАрдЬрд╝ yii1 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ
public function init() { $this->idParam = $this->getIdParamYii1();
2. рджреЛ рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ
protected function getIdentityAndDurationFromCookie() { $id = $this->getIdIdentityFromCookiesYii1(); if (!$id) { return null; } $class = $this->identityClass; $identity = $class::findOne($id); if ($identity !== null) { return ['identity' => $identity, 'duration' => 0]; } return null; } protected function getIdIdentityFromCookiesYii1() { if (!isset($_COOKIE[$this->identityCookie['name']])) return null; $cookieValue = $_COOKIE[$this->identityCookie['name']];
рдХреЛрдб рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд
UtilYii1Security рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ - рдпрд╣
CSecurityManager рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рд╣реИ, рддрд╛рдХрд┐ рдПрдХ рдУрд░ рдпрд╣ рдореВрд▓ рдЬреИрд╕рд╛
рджрд┐рдЦреЗ , рд▓реЗрдХрд┐рди рд╕рд░рд▓реАрдХрд░рдг рдХреЗ рд╕рд╛рдеред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
CSecurityManager рдореЗрдВ HMAC (рд╣реИрд╢-рдЖрдзрд╛рд░рд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛрдб) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк
рд╣реИрдВ , рдЬреЛ php рд╕рдВрд╕реНрдХрд░рдг рдФрд░ mbstring рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХрдм рд╕реЗ рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ yii1 рд╕рдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ yii2 рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдХрд╛рд░реНрдп рд╕рд░рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдХреЛрдб рднреАред
рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдмреИрд╕рд╛рдЦреА рдпрд╣рд╛рдБ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ, рдлрд┐рд░ рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕реБрдВрджрд░ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЖрдкрдХреА рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд рдЗрд╕реЗ "рдХреИрдж" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
UtilYii1Security.php <?php namespace app\components; use yii\base\Exception; use yii\base\Model; use yii\base\InvalidConfigException; class UtilYii1Security { const STATE_VALIDATION_KEY = 'Yii.CSecurityManager.validationkey'; public $hashAlgorithm = 'sha1'; private $_validationKey; private $basePath; private $stateFile; public function __construct($basePath) { $this->basePath = $basePath; $this->stateFile = $this->basePath . DIRECTORY_SEPARATOR . 'runtime' . DIRECTORY_SEPARATOR . 'state.bin'; if (!realpath($this->stateFile)) throw new InvalidConfigException(' '); } public function validateData($data, $key = null) { if (!is_string($data)) return false; $len = $this->strlen($this->computeHMAC('test')); if ($this->strlen($data) >= $len) { $hmac = $this->substr($data, 0, $len); $data2 = $this->substr($data, $len, $this->strlen($data)); return $this->compareString($hmac, $this->computeHMAC($data2, $key)) ? $data2 : false; } else return false; } public function computeHMAC($data, $key = null) { if ($key === null) $key = $this->getValidationKey(); return hash_hmac($this->hashAlgorithm, $data, $key); } public function getValidationKey() { if ($this->_validationKey !== null) return $this->_validationKey; if (($key = $this->loadStateValidationKey(self::STATE_VALIDATION_KEY)) !== null) { $this->_validationKey = $key; } return $this->_validationKey; }
рдХрд░реНрдореЛрдВ рдХрд╛ рдЕрдиреБрдХреНрд░рдо
рдЬрдм рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ yii1 рд╕реЗ yii2 рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛:
- рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдкрд╛рд░рджрд░реНрд╢реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░реЗрдВред
рдпрд╛рдиреА рддрд╛рдХрд┐ yii2 рд╢рд╛рдЦрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ yii1 рдХреЗ рд╕рд╛рде рдкреНрд░рдорд╛рдгрд┐рдд рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓реЗред рдпрд╣ рддреЗрдЬ рд╣реИ, рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред
- рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдкреНрд░рдорд╛рдгреАрдХрд░рдг (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрд┐рди) yii1 рд╕реЗ yii2 рддрдХред
рдкреБрд░рд╛рдиреА рд╢рд╛рдЦрд╛ рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреБрдХреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдСрдЯреЛрд▓реЙрдЧрд┐рди рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ yii1 рд╕реЗ рдХреБрдХреАрдЬрд╝ рдЕрдм рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЕрднреА рднреА yii2 рдкрд░ рдХреБрдЫ рдирдП рдкреГрд╖реНрда рд╣реИрдВред - Yii2 рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдХреЗ рдХрдо рд╕реЗ рдХрдо рдореБрдЦреНрдп рдкреГрд╖реНрда рдХреЛ рдкреЛрд░реНрдЯ рдХрд░реЗрдВ
рддрд╛рдХрд┐ рдЖрдк yii2 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирдИ рдХреБрдХреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдСрдЯреЛрд▓реЙрдЧрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред
рдХрдо рд╕реЗ рдХрдо рдореБрдЦреНрдп рдПрдХ рдкрд░ рдПрдХ рдСрдЯреЛрд▓реЙрдЧрд┐рди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐, рдкрд┐рдЫрд▓реА рд╢рд╛рдЦрд╛ рдкрд░ рд▓рд╛рдкрддрд╛ рдСрдЯреЛрд▓реЙрдЧрд┐рди рдХреЛ рдореБрдЦреМрдЯрд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред
- рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ yii1 yii2 рдореЗрдВ рдкреНрд░рдорд╛рдгрд┐рдд рд╣реИред
рд╕рддреНрд░ рдХреБрдВрдЬреА рдХреА рдмрд╛рддрдЪреАрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдВрдЬреАрдХрд░рдг рдХреЛ yii2 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред
рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢ рдХреЗ рд╕рдордиреНрд╡рдп рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреБрд░рд╛рдиреЗ рд╣реИрд╢ рдкреНрд░рд╛рд░реВрдк рдХреЛ рд░рдЦреЗрдВ рдпрд╛ рдПрдХ рдирдпрд╛ рдкрд░рд┐рдЪрдп рджреЗрдВ, рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рдХрд┐ рд▓реЙрдЧрд┐рди рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдордЭрддрд╛ рд╣реИред - рд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╕реЗрд╡рд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ yii2 "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рджреЗрддреА рд╣реИред
рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд╛ рдкрд░рд┐рдЪрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдЬреЛ рдЯреЛрдХрди, рдкрд╛рд╕рд╡рд░реНрдб рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐, рдЖрджрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреБрдХреНрдд рджреЛрд╣рди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЪрд╛рдирдХ рдирд╣реАрдВ? рдлрд┐рд░ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред
рдпрджрд┐ рд╣рд╛рдБ, рддреЛ рдпрд╣ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддреЗ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдорд╛рдЗрдЧреНрд░реЗрд╢рди) рдХреЛ yii2 (рдХрдо рд╕реЗ рдХрдо рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ) рддрдХ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред
рдпрджрд┐ "рдирд╣реАрдВ" рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрднреА рднреА рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддреЗ рдХреЗ рдкреНрд░рд╡рд╛рд╕рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП (рдирдП рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдмрд┐рдирд╛ рднреА)ред
рдкреБрдирд╢реНрдЪ:
рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдореЗрдВ рдЕрд╕реНрдкрд╖реНрдЯ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрди рд╕рднреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╡реЗ рдХрд╣рдиреЗ рдХреЗ рдкреНрд░рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рд╣реИрдВ "рдЬреИрд╕рд╛ рдореИрдВ рдХрд░рддрд╛ рд╣реВрдВ рд╡реИрд╕рд╛ рдХрд░реЛред" рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, yii1 рд╕реЗ рдХреБрдХреАрдЬрд╝ рдХреЗ рд▓рд┐рдП yii2 рдСрдЯреЛрд▓реЙрдЧрд┐рди рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди, рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ (рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмреИрд╕рд╛рдЦреА рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рдард╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред
рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЗрд╕ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдкреНрд░рд╡рд╛рд╕ рдкрд░ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рд╣реИ рдФрд░ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдХреЛрдИ, рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдХреЛ рджреЗрдЦрдХрд░, рдЙрд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред