fastadmin会员单点登录
使用fastadmin会员单点登录
按照手册上,只能实现后端的单点登录,修改配置文件,但是在对接一些前后端分离的项目时,需要实现接口的单点登录,按照原有配置,不能满足,其实只用修改一个系统文件就可以。
1.找到关键文件
app\common\library\Auth.php
2.在指定位置添加清除id的token
大概是在234行
//清除之前的token,实现单点登录
Token::clear($user->id);
具体代码位置
/*** 用户登录** @param string $account 账号,用户名、邮箱、手机号* @param string $password 密码* @return boolean*/public function login($account, $password){$field = Validate::is($account, 'email') ? 'email' : (Validate::regex($account, '/^1\d{10}$/') ? 'mobile' : 'username');$user = User::get([$field => $account]);if (!$user) {$this->setError('Account is incorrect');return false;}if ($user->status != 'normal') {$this->setError('Account is locked');return false;}if ($user->loginfailure >= 10 && time() - $user->loginfailuretime < 86400) {$this->setError('Please try again after 1 day');return false;}if ($user->password != $this->getEncryptPassword($password, $user->salt)) {$user->save(['loginfailure' => $user->loginfailure + 1, 'loginfailuretime' => time()]);$this->setError('Password is incorrect');return false;}//清除之前的token,实现单点登录Token::clear($user->id);//直接登录会员return $this->direct($user->id);}
按照上面的操作,单点登录就实现了