Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: Yii, Yii2
Войти
Регистрация
Восстановить пароль
 
Dorofej
-2 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 207
#1

Как осуществить авторизацию / регистрацию в Yii2 по уникальному никнейму?

25.06.2017, 20:55. Просмотров 444. Ответов 7
Метки нет (Все метки)

как осуществить авторизацию / регистрацию в юии2 по уник никнейму-- как это реализовать

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2017, 20:55
Ответы с готовыми решениями:

Ошибка при установке Yii2-user with Yii2 advanced template
https://github.com/dektrium/yii2-user/blob/master/docs/usage-with-advanced-templ...

Простой многостраничный сайт на Yii2 без БД, есть ли быстрый старт для новичка в Yii2?
Привет! Решил смастерить сайт на Yii2, прочел вчера вводный раздел...

Осуществить регистрацию и авторизацию через MySQL
Кто может помочь осуществить регистрация и авторизацию через MySQL Проект...

Как создать простейшую регистрацию и авторизацию на сайте
Как создать простейшую регистрацию и авторизацию на сайте использую php и...

Как убрать Авторизацию и Регистрацию у Залогиново пользователя?
Добрый вечер господа, столкнулся с такой причиной, На странице есть форма...

7
FloppyDisc
Особый статус
561 / 173 / 139
Регистрация: 18.11.2015
Сообщений: 953
25.06.2017, 21:07 #2
если под никнеймом подразумевается Username, то там есть стандартная реализация:
PHP
1
2
3
4
5
6
7
8
9
10
/**
     * Finds user by username
     *
     * @param string $email
     * @return static|null
     */
    public static function findByEmailOrUserName($email)
    {
        return static::find()->where(['and', ['or', 'email=:email', 'username=:username']], [':status' => self::STATUS_ACTIVE, ':email' => $email, ':username' => $email])->one();
    }
0
Dorofej
-2 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 207
25.06.2017, 21:49  [ТС] #3
То есть имелось ввиду авторизация и регистрация происходит путем обычного ввода имени - если в базе нет имени с данным пользователем то пользователь добавляется (как с веденным именем) + соотвественно создается кабинет как в обычном случае
0
FloppyDisc
Особый статус
561 / 173 / 139
Регистрация: 18.11.2015
Сообщений: 953
25.06.2017, 21:57 #4
ну а с паролем что? просто подредактируйте под себя SignupForm.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function signup()
    {
        if (!$this->validate()) {
            return null;
        }
        
        $user = new User();
 
        $user->username = $this->username;
        $user->email = $this->email;
        $user->setPassword($this->password);
        $user->generateAuthKey();
        
        return $user->save() ? $user : null;
    }
и конечно же правила:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            ['username', 'trim'], ['username', 'required', 'message' => 'Пожалуйста, введите имя пользователя'],
            ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'Это имя пользователя уже занято.'],
            ['username', 'string', 'min' => 2, 'max' => 255],
 
            ['email', 'trim'],
            ['email', 'required'],
            ['email', 'email'],
            ['email', 'string', 'max' => 255],
            ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'Этот e-main уже занят.'],
 
            ['password', 'required'],
            ['password', 'string', 'min' => 6],
        ];
    }
0
Dorofej
-2 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 207
25.06.2017, 22:03  [ТС] #5
хотите сказать просто использовать signup - а если хотим только регистрироваться по никнейму то убрать поля $user->email = $this->email;
$user->setPassword($this->password);
$user->generateAuthKey();
а если требуется авторизация только никнейму как поступить
0
FloppyDisc
Особый статус
561 / 173 / 139
Регистрация: 18.11.2015
Сообщений: 953
25.06.2017, 22:13 #6
ну я вообще чтот не представляю авторизацию/регистрацию только по логину(никнейму)
ну можно что-то такое: Модель User
PHP
1
2
3
4
public static function findByNickName($nickname)
    {
        return static::find()->where(['and', ['nickname=:nickname']], [':status' => self::STATUS_ACTIVE, ':nickname' => $nickname])->one();
    }
LoginForm
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
     * Logs in a user using the provided username and password.
     *
     * @return boolean whether the user is logged in successfully
     */
    public function login()
    {
        if ($this->validate()) {
            return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0);
        } else {
            return false;
        }
    }
 
    /**
     * Finds user by [[username]]
     *
     * @return User|null
     */
    public function getUser()
    {
        if ($this->_user === false) {
            $this->_user = User::findByNickname($this->nickname);
        }
 
        return $this->_user;
    }
0
Dorofej
-2 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 207
26.06.2017, 15:48  [ТС] #7
С регистрацией я разобрался- как сделать по одному username а вот как логиниться по одному юсернейму и если усернейма не существует то добавлять пользователя как нового -+ помогите разобраться пожайлуста с вопросом по созданию поля ии кнопки перевода сумм другим пользователям + отображения транакций для каждого пользователя в этом разделе

Добавлено через 5 часов 58 минут
Как авторизовать пользователя по никнейму - если никнейма в базе нет то автоматом создать пользователя с этим никнеймом! Как реализовать

Добавлено через 7 часов 6 минут
Можете подсказать?
0
FloppyDisc
Особый статус
561 / 173 / 139
Регистрация: 18.11.2015
Сообщений: 953
26.06.2017, 20:22 #8
Примерно так, но не знаю на сколько это правильно, не пробовал такое в деле

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public static function findByNickName($nickname)
    {
        $user = static::find()->where(['and', ['nickname=:nickname']], [':status' => self::STATUS_ACTIVE, ':nickname' => $nickname])->one();
    }
if($user instanceof User)
          return $user;
 else {
            $user = new User();
            $user->nickname = $nickname;
//статус пользователя и т.д
            $user->generateAuthKey();
            if($user->save())
            {
                //$userRole = Yii::$app->authManager->getRole('user');
                //Yii::$app->authManager->assign($userRole, $user->getId());
                //еще манипуляции
               return $user;
            }
        }
return null;
0
26.06.2017, 20:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2017, 20:22

Интеграция dle+vb: как реализовать регистрацию и авторизацию
Здравствуйте, хочу сделать интеграцию dle 9.6 + форум vbulletin нужна...

Как сделать регистрацию и авторизацию основанную на сессииях
Как сделать регистрацию и авторизацию основанную на сессииях,можете дать...

Люди! Как в Access сделать авторизацию(с логином и паролем) и регистрацию?
Меня попросила девочка сделать дипломную работу(базу) "Онлайн выстовка детских...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru