destoon,ucenter整合 用户登录的处理,修改密码后的处理

2024-02-14 19:32

本文主要是介绍destoon,ucenter整合 用户登录的处理,修改密码后的处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ucenter是用户中心,按照ucenter的模式,ucenter接管了应用程序的注册与登录的问题,应用程序的密码也就没有多大用处了,但是destoon的用户在登录时,destoon还是要验证与本地的密码一致不一致
module/member/login.inc.php
中的登录是这样写的
if($MOD['passport'] == 'uc') include DT_ROOT.'/api/'.$MOD['passport'].'.inc.php';
$user = $do->login($username, $password, $cookietime);
这一段的意思是如果定义了uc来验证,那么就加载/api/uc.inc.php中的代码来进行登录验证
但下边一行$do->login  (Ps: $do=new member),又使用了destoon本身的登录验证,
根据上文提到的,destoon并不接受ucenter中关于修改密码的通知,那么destoon是怎么做到密码同步的呢?
在uc.inc.php中有这样一段
 
 /* Ucenter 验证成功 */$api_msg = uc_user_synlogin($uid);if ($user){$vpassword = is_md5($password) ? md5($password) : md5(md5($password)); /* 同步DT密码 */if ($user['password'] != $vpassword) $db->query("UPDATE {$DT_PRE}member SET password='$vpassword' WHERE username='$username'");} else{ /* 会员不存在 */$auth = rawurlencode(encrypt($username . '|' . $rt_password . '|' . $rt_email));message('请激活您的通行证账号', $MOD['linkurl'] . $DT['file_register'] . '?auth=' . $auth);}



这一段的目的就是如果使用ucenter的api登录成功那了,那么就把本地的密码修改成ucenter中的密码,这样即使以后不使用ucenter,原用户的密码可以保留


if($MOD['passport'] == 'uc') include DT_ROOT.'/api/'.$MOD['passport'].'.inc.php';

$user = $do->login($username, $password, $cookietime);


	if(!function_exists('uc_user_login')) {loaducenter();}if($isuid == 3) {if(!strcmp(dintval($username), $username) && getglobal('setting/uidlogin')) {$return['ucresult'] = uc_user_login($username, $password, 1, 1, $questionid, $answer, $ip);} elseif(isemail($username)) {$return['ucresult'] = uc_user_login($username, $password, 2, 1, $questionid, $answer, $ip);}if($return['ucresult'][0] <= 0 && $return['ucresult'][0] != -3) {$return['ucresult'] = uc_user_login(addslashes($username), $password, 0, 1, $questionid, $answer, $ip);}} else {$return['ucresult'] = uc_user_login(addslashes($username), $password, $isuid, 1, $questionid, $answer, $ip);}$tmp = array();$duplicate = '';list($tmp['uid'], $tmp['username'], $tmp['password'], $tmp['email'], $duplicate) = $return['ucresult'];$return['ucresult'] = $tmp;if($duplicate && $return['ucresult']['uid'] > 0 || $return['ucresult']['uid'] <= 0) {$return['status'] = 0;return $return;}


这篇关于destoon,ucenter整合 用户登录的处理,修改密码后的处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/709398

相关文章

一文带你搞懂Redis Stream的6种消息处理模式

《一文带你搞懂RedisStream的6种消息处理模式》Redis5.0版本引入的Stream数据类型,为Redis生态带来了强大而灵活的消息队列功能,本文将为大家详细介绍RedisStream的6... 目录1. 简单消费模式(Simple Consumption)基本概念核心命令实现示例使用场景优缺点2

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

SpringBoot整合OpenFeign的完整指南

《SpringBoot整合OpenFeign的完整指南》OpenFeign是由Netflix开发的一个声明式Web服务客户端,它使得编写HTTP客户端变得更加简单,本文为大家介绍了SpringBoot... 目录什么是OpenFeign环境准备创建 Spring Boot 项目添加依赖启用 OpenFeig

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时