2018-04-23 11:24:55 2006次浏览 1条回答 0 悬赏 15 金钱

想用 Yii 模版改一个 web 应用,打算改写登录逻辑,

实现只用微信账号登录,但是获取不到登录状态,不知道是怎么回事

\common\models\LoginForm

public function login()
{
    if ($this->validate()) { //validate() 部分已取消密码验证规则 //['password', 'validatePassword'],
        return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0);
    }

    return false;
}
\yii\web\User login

public function login(IdentityInterface $identity, $duration = 0) //因为自建的数据库 User 表当中没有相关字段,所以在 IdentityInterface 中注销了两个方法,//public function getAuthKey();//public function validateAuthKey($authKey);
{
    if ($this->beforeLogin($identity, false, $duration)) {
        $this->switchIdentity($identity, $duration);
        $id = $identity->getId();
        $ip = Yii::$app->getRequest()->getUserIP();
        if ($this->enableSession) {
            $log = "User '$id' logged in from $ip with duration $duration.";
        } else {
            $log = "User '$id' logged in from $ip. Session not enabled.";
        }
        Yii::info($log, __METHOD__);
        $this->afterLogin($identity, false, $duration);
    }

    return !$this->getIsGuest();
}

补充内容:

web 应用的数据库用户表

db.jpg

补充于 2018-04-24 16:14

设想是用微信登录,
现在正在摸索登录的流程,
注销了接口中的两个方法,
程序能跑不报错,
但是获取不到登录状态,
不知道是怎么回事

  • 回答于 2018-04-23 20:12 举报

    问题相当简单,就是怕说了,你听不懂,而且处理的方法N种,从你上面的代码来看,跟wechat 网页授权一点影子都没,怎么解决你的问题?请问你的微信网页授权是放哪的。就这提问的技巧,在githtub直接关闭。
    算了,这一说,又牵扯出来N多知识点。

    2 条回复
    回复于 2018-04-23 22:56 回复

    感谢!
    问题好像不能二次编辑了,无奈~
    补充一下:
    设想是用微信登录,
    现在正在摸索登录的流程,
    注销了接口中的两个方法,
    程序能跑不报错,
    但是获取不到登录状态,
    不知道是怎么回事

    回复于 2018-04-24 16:09 回复

    在 githtub 直接关闭?

您需要登录后才可以回答。登录 | 立即注册
crossey
职场新人

crossey

注册时间:2017-05-31
最后登录:2018-07-20
在线时长:8小时19分
  • 粉丝0
  • 金钱10
  • 威望0
  • 积分90

热门问题