Dominus77 / yii2-advanced-start

Yii2 Start Project Advanced Template

Home Page:https://dominus77.github.io/yii2-advanced-start/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can not see picture on Profile

polinwei opened this issue · comments

When I Setup the domainFrontend & domainBackend

 'polin.wei@myweb.com',
    'supportEmail' => 'polin.wei@myweb.com',
    'user.passwordResetTokenExpire' => 3600,
    'domainFrontend' => 'myweb.com',
    'domainBackend' => 'myweb.com/admin',
];

I get the error message as below. If I remove domainFrontend & domainBackend , then workable.

GET http://myweb.com/admin/users/1/myweb.com/uploads/users/1/1507792080.jpg 404 (Not Found)
browser.chrome.js:172 dcePageScanner::ParsePage Starting page scan, href=http://myweb.com/admin/users/1/view

you do not have a protocol http:// in the config

'polin.wei@myweb.com',
    'supportEmail' => 'polin.wei@myweb.com',
    'user.passwordResetTokenExpire' => 3600,
    'domainFrontend' => 'http://myweb.com',
    'domainBackend' => 'http://myweb.com/admin',
];

These parameters serve to display pictures from backend to frontend and vice versa.
The download folder is in the frontend

Yii::setAlias('@upload', dirname(dirname(__DIR__)) . '/frontend/web/');

Ha !! Ha !! My fault.

The other issue: When I send the request on page: "http://myweb.com/request-password-reset" . It always say "Sorry, we are unable to reset password for email provided. "

Where do I need to setup?

Return to false

See:

For two reasons:

  1. if (!User::isPasswordResetTokenValid($user->password_reset_token)) {

Reset password only for active account:

but the user&email is exist.

but the user&email is exist.

Debug here:

\yii\helpers\VarDumper::dump($user, 10, 1);
die;
 modules\users\models\frontend\User#1
(
    [currentPassword] => null
    [newPassword] => null
    [newPasswordRepeat] => null
    [role] => null
    [imageFile] => null
    [isDel] => null
    [yii\db\BaseActiveRecord:_attributes] => [
        'id' => 9
        'username' => 'wei'
        'auth_key' => 'c1yDOdviN0keRC-zB7mHAS-9S6Q3o9B0'
        'password_hash' => '$2y$13$JHCvI9kBm5YmH6TPyVZ70uZGwR/VNjWR4mmgltkSARd6c2wFY2EkG'
        'password_reset_token' => null
        'email_confirm_token' => null
        'email' => 'xxx@msn.com'
        'status' => 1
        'last_visit' => 1507792923
        'created_at' => 1507790911
        'updated_at' => 1507792722
        'avatar' => '1507792722.jpg'
        'first_name' => null
        'last_name' => null
        'openid' => null
        'registration_type' => 0
    ]
    [yii\db\BaseActiveRecord:_oldAttributes] => [
        'id' => 9
        'username' => 'wei'
        'auth_key' => 'c1yDOdviN0keRC-zB7mHAS-9S6Q3o9B0'
        'password_hash' => '$2y$13$JHCvI9kBm5YmH6TPyVZ70uZGwR/VNjWR4mmgltkSARd6c2wFY2EkG'
        'password_reset_token' => null
        'email_confirm_token' => null
        'email' => 'xxx@msn.com'
        'status' => 1
        'last_visit' => 1507792923
        'created_at' => 1507790911
        'updated_at' => 1507792722
        'avatar' => '1507792722.jpg'
        'first_name' => null
        'last_name' => null
        'openid' => null
        'registration_type' => 0
    ]
    [yii\db\BaseActiveRecord:_related] => []
    [yii\base\Model:_errors] => null
    [yii\base\Model:_validators] => null
    [yii\base\Model:_scenario] => 'default'
    [yii\base\Component:_events] => [
        'beforeInsert' => [
            0 => [
                0 => [
                    0 => yii\behaviors\TimestampBehavior#2
                    (
                        [createdAtAttribute] => 'created_at'
                        [updatedAtAttribute] => 'updated_at'
                        [value] => null
                        [attributes] => [
                            'beforeInsert' => [
                                0 => 'created_at'
                                1 => 'updated_at'
                            ]
                            'beforeUpdate' => 'updated_at'
                        ]
                        [skipUpdateOnClean] => true
                        [owner] => modules\users\models\frontend\User#1(...)
                    )
                    1 => 'evaluateAttributes'
                ]
                1 => null
            ]
        ]
        'beforeUpdate' => [
            0 => [
                0 => [
                    0 => yii\behaviors\TimestampBehavior#2(...)
                    1 => 'evaluateAttributes'
                ]
                1 => null
            ]
        ]
    ]
    [yii\base\Component:_behaviors] => [
        'timestamp' => yii\behaviors\TimestampBehavior#2(...)
    ]
) 

This Ok!
Yet:

\yii\helpers\VarDumper::dump(Yii::$app->params['supportEmail'], 10, 1);
die;

Debug here:

\yii\helpers\VarDumper::dump($user, 10, 1);
die;

Should be generated 'password_reset_token'

 modules\users\models\frontend\User#1
(
    [currentPassword] => null
    [newPassword] => null
    [newPasswordRepeat] => null
    [role] => null
    [imageFile] => null
    [isDel] => null
    [yii\db\BaseActiveRecord:_attributes] => [
        'id' => 9
        'username' => 'wei'
        'auth_key' => 'c1yDOdviN0keRC-zB7mHAS-9S6Q3o9B0'
        'password_hash' => '$2y$13$JHCvI9kBm5YmH6TPyVZ70uZGwR/VNjWR4mmgltkSARd6c2wFY2EkG'
        'password_reset_token' => 'UO5M8_9UZJHF7cqMAhreY83sT8jaGNfn_1507796636'
        'email_confirm_token' => null
        'email' => 'xxx@msn.com'
        'status' => 1
        'last_visit' => 1507792923
        'created_at' => 1507790911
        'updated_at' => 1507796636
        'avatar' => '1507792722.jpg'
        'first_name' => null
        'last_name' => null
        'openid' => null
        'registration_type' => 0
    ]
    [yii\db\BaseActiveRecord:_oldAttributes] => [
        'id' => 9
        'username' => 'wei'
        'auth_key' => 'c1yDOdviN0keRC-zB7mHAS-9S6Q3o9B0'
        'password_hash' => '$2y$13$JHCvI9kBm5YmH6TPyVZ70uZGwR/VNjWR4mmgltkSARd6c2wFY2EkG'
        'password_reset_token' => 'UO5M8_9UZJHF7cqMAhreY83sT8jaGNfn_1507796636'
        'email_confirm_token' => null
        'email' => 'xxx@msn.com'
        'status' => 1
        'last_visit' => 1507792923
        'created_at' => 1507790911
        'updated_at' => 1507796636
        'avatar' => '1507792722.jpg'
        'first_name' => null
        'last_name' => null
        'openid' => null
        'registration_type' => 0
    ]
    [yii\db\BaseActiveRecord:_related] => []
    [yii\base\Model:_errors] => null
    [yii\base\Model:_validators] => null
    [yii\base\Model:_scenario] => 'default'
    [yii\base\Component:_events] => [
        'beforeInsert' => [
            0 => [
                0 => [
                    0 => yii\behaviors\TimestampBehavior#2
                    (
                        [createdAtAttribute] => 'created_at'
                        [updatedAtAttribute] => 'updated_at'
                        [value] => null
                        [attributes] => [
                            'beforeInsert' => [
                                0 => 'created_at'
                                1 => 'updated_at'
                            ]
                            'beforeUpdate' => 'updated_at'
                        ]
                        [skipUpdateOnClean] => true
                        [owner] => modules\users\models\frontend\User#1(...)
                    )
                    1 => 'evaluateAttributes'
                ]
                1 => null
            ]
        ]
        'beforeUpdate' => [
            0 => [
                0 => [
                    0 => yii\behaviors\TimestampBehavior#2(...)
                    1 => 'evaluateAttributes'
                ]
                1 => null
            ]
        ]
    ]
    [yii\base\Component:_behaviors] => [
        'timestamp' => yii\behaviors\TimestampBehavior#2(...)
    ]
) 

I compare git . I do nothing . But now it can work. strange.

Maybe I use the same browser with a different account to do the test ?!

Replace:


On:

$result = Yii::$app
            ->mailer
            ->compose(
                ['html' => '@modules/users/mail/passwordResetToken-html', 'text' => '@modules/users/mail/passwordResetToken-text'],
                ['user' => $user]
            )
            ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name . ' robot'])
            ->setTo($this->email)
            ->setSubject(Module::t('frontend', 'PASSWORD_RESET_FOR') . ' ' . Yii::$app->name)
            ->send();

        \yii\helpers\VarDumper::dump($result, 10, 1);
        die;
return $result;

If all goes well, it returns true

Now it can send mail . When I click the link http://myweb.com/users/default/reset-password?token=UO5M8_9UZJHF7cqMAhreY83sT8jaGNfn_1507796636 from mail. I got Not Found (#404)

Maybe I use the same browser with a different account to do the test ?!

Well, yes, you are logged in one window and try to remember the password as an authorized user))

Now it can send mail . When I click the link http://myweb.com/users/default/reset-password?token=UO5M8_9UZJHF7cqMAhreY83sT8jaGNfn_1507796636 from mail. I got Not Found (#404)

Check the rule:

'<_a:(login|logout|signup|email-confirm|request-password-reset|reset-password)>' => 'users/default/<_a>',

It must be so
<_a:(login|logout|signup|email-confirm|request-password-reset|reset-password)>

http://myweb.com/users/default/reset-password?token=GGbKY0Ga_7ooOSRdLh5T8ZBDWqEOupHr_1507797960

I look the table:user , is GGbKY0Ga_7ooOSRdLh5T8ZBDWqEOupHr_1507797960

How do you call the method?

public function actionResetPassword($token)

This bug version 1.0.1
'<_a:(login|logout|signup|email-confirm|request-password-reset|password-reset)>' => 'users/default/<_a>',

The wizard has been fixed:
'<_a:(login|logout|signup|email-confirm|request-password-reset|reset-password)>' => 'users/default/<_a>',

http://myweb.com/users/default/reset-password?token=GGbKY0Ga_7ooOSRdLh5T8ZBDWqEOupHr_1507797960

Correct link:
http://myweb.com/reset-password?token=GGbKY0Ga_7ooOSRdLh5T8ZBDWqEOupHr_1507797960

Repeat the test again, the correct link should be generated in the letter.

from mail

Hello msn,
!
Follow the link below to reset your password:
:
http://myweb.com/users/default/reset-password?token=GGbKY0Ga_7ooOSRdLh5T8ZBDWqEOupHr_1507797960


Link generate to

$resetLink = Yii::$app->urlManager->createAbsoluteUrl(['users/default/reset-password', 'token' => $user->password_reset_token]);

$resetLink = Yii::$app->urlManager->createAbsoluteUrl(['users/default/reset-password', 'token' => $user->password_reset_token]);

The rule is corrected exactly?

'<_a:(login|logout|signup|email-confirm|request-password-reset|reset-password)>' => 'users/default/<_a>',

It should turn out:
http://myweb.com/reset-password?token=GGbKY0Ga_7ooOSRdLh5T8ZBDWqEOupHr_1507797960

I don't know what I need to do . I paste the link http://myweb.com/reset-password?token=GGbKY0Ga_7ooOSRdLh5T8ZBDWqEOupHr_1507797960 , It also say Page not found.

At the beginning of the method, insert

\yii\helpers\VarDumper::dump($token, 10, 1);
die;

And click on the link:
http://myweb.com/reset-password?token=GGbKY0Ga_7ooOSRdLh5T8ZBDWqEOupHr_1507797960
Will the token show?

Not show the token

modules/users/Bootstrap.php

 * Date: 17.10.16
 * Time: 13:36
 */

namespace modules\users;

use yii\base\BootstrapInterface;

class Bootstrap implements BootstrapInterface
{
    /**
     * @inheritdoc
     */
    public function bootstrap($app)
    {
        // i18n
        $app->i18n->translations['modules/users/*'] = [
            'class' => 'yii\i18n\PhpMessageSource',
            'basePath' => '@modules/users/messages',
            'fileMap' => [
                'modules/users/backend' => 'backend.php',
                'modules/users/frontend' => 'frontend.php',
                'modules/users/mail' => 'mail.php',
            ],
        ];

        // Rules
        $app->getUrlManager()->addRules(
            [
                // объявление правил здесь
                '<_a:(login|logout|signup|email-confirm|request-password-reset|password-reset)>' => 'users/default/<_a>',

                'users' => 'users/default/index',
                'users/create' => 'users/default/create',
                'users//<_a:[\w\-]+>' => 'users/default/<_a>',
                'user/update' => 'users/default/update',
                'user/update-profile' => 'users/default/update-profile',
                'user/update-avatar' => 'users/default/update-avatar',
                'user/update-password' => 'users/default/update-password',
                'user/delete' => 'users/default/delete',
            ]
        );
    }
}

frontend/config/main.php

$params = array_merge(
    require(__DIR__ . '/../../common/config/params.php'),
    require(__DIR__ . '/../../common/config/params-local.php'),
    require(__DIR__ . '/params.php'),
    require(__DIR__ . '/params-local.php')
);

return [
    'id' => 'app-frontend',    
    'homeUrl' => '/',
    'basePath' => dirname(__DIR__),
    'bootstrap' => [
        'log',
        'modules\main\Bootstrap',
        'modules\users\Bootstrap',
        'modules\rbac\Bootstrap',
    ],
    'defaultRoute' => 'main/default/index',
    'components' => [
        'request' => [
            'csrfParam' => '_csrf-frontend',
            'baseUrl' => '',
        ],
        'user' => [
            'identityClass' => 'modules\users\models\User',
            'enableAutoLogin' => true,
            'identityCookie' => ['name' => '_identity-frontend', 'httpOnly' => true],
            'loginUrl' => ['/users/default/login'],
        ],
        'session' => [
            // this is the name of the session cookie used for login on the frontend
            'name' => 'advanced-frontend',
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'errorHandler' => [
            'errorAction' => 'frontend/error',
        ],
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'enableStrictParsing' => true,
            'rules' => [],
        ],
    ],
    'as afterAction' => [
        'class' => '\modules\users\components\behavior\LastVisitBehavior',
    ],
    'params' => $params,
];

modules/users/mail/passwordResetToken-html.php


`
urlManager->createAbsoluteUrl(['users/default/reset-password', 'token' => $user->password_reset_token]);
?>

$user->username]); ?>,

!

:

:

`

modules/users/mail/passwordResetToken-text.php

`
urlManager->createAbsoluteUrl(['users/default/reset-password', 'token' => $user->password_reset_token]);
?>
Hello username ?>,

Follow the link below to reset your password:




`

Look for the Bootstrap.php error
I wrote about this above many times))
#5 (comment)
#5 (comment)
Necessary
'<_a:(login|logout|signup|email-confirm|request-password-reset|reset-password)>' => 'users/default/<_a>',
But not
'<_a:(login|logout|signup|email-confirm|request-password-reset|password-reset)>' => 'users/default/<_a>',

Sorry. It is reset-password and workable.