交流QQ号:555913397
有什么问题可以加群大家一起交流

上一章讲解了如何添加短信验证码登录,这一章给大家讲讲如何用"手机号"加"密码"登录,多的不说了,上代码.

在Core/Authorization/LoginManager.cs

        /// <summary>/// 手机号登录/// </summary>/// <param name="phoneNumber">手机号</param>/// <param name="plainPassword">密码</param>/// <param name="tenancyName">租户名</param>/// <param name="shouldLockout">锁定</param>/// <returns></returns>[UnitOfWork]public virtual async Task<AbpLoginResult<Tenant, User>> LoginByMobileAsync(string phoneNumber, string plainPassword, string tenancyName = null, bool shouldLockout = true){var result = await LoginByMobileAsyncInternal(phoneNumber, plainPassword, tenancyName, shouldLockout);await SaveLoginAttempt(result, tenancyName, phoneNumber);return result;}
        /// <summary>/// 手机号登录内部方法/// </summary>/// <param name="phoneNumber">手机号码</param>/// <param name="plainPassword">密码</param>/// <param name="tenancyName">租户名</param>/// <param name="shouldLockout">是否锁定</param>/// <returns></returns>protected virtual async Task<AbpLoginResult<Tenant, User>> LoginByMobileAsyncInternal(string phoneNumber, string plainPassword, string tenancyName, bool shouldLockout){if (phoneNumber.IsNullOrEmpty()){throw new ArgumentNullException(nameof(phoneNumber));}if (plainPassword.IsNullOrEmpty()){throw new ArgumentNullException(nameof(plainPassword));}//Get and check tenantTenant tenant = null;using (UnitOfWorkManager.Current.SetTenantId(null)){if (!MultiTenancyConfig.IsEnabled){tenant = await GetDefaultTenantAsync();}else if (!string.IsNullOrWhiteSpace(tenancyName)){tenant = await TenantRepository.FirstOrDefaultAsync(t => t.TenancyName == tenancyName);if (tenant == null){return new AbpLoginResult<Tenant, User>(AbpLoginResultType.InvalidTenancyName);}if (!tenant.IsActive){return new AbpLoginResult<Tenant, User>(AbpLoginResultType.TenantIsNotActive, tenant);}}}var tenantId = tenant == null ? (int?)null : tenant.Id;using (UnitOfWorkManager.Current.SetTenantId(tenantId)){await UserManager.InitializeOptionsAsync(tenantId);var loggedInFromExternalSource = false; var user = await _userStore.FindByPhoneNumberAsync(tenantId, phoneNumber);if (user == null){return new AbpLoginResult<Tenant, User>(AbpLoginResultType.InvalidUserNameOrEmailAddress, tenant);}if (await UserManager.IsLockedOutAsync(user)){return new AbpLoginResult<Tenant, User>(AbpLoginResultType.LockedOut, tenant, user);}if (!loggedInFromExternalSource){if (!await UserManager.CheckPasswordAsync(user, plainPassword)){if (shouldLockout){if (await TryLockOutAsync(tenantId, user.Id)){return new AbpLoginResult<Tenant, User>(AbpLoginResultType.LockedOut, tenant, user);}}return new AbpLoginResult<Tenant, User>(AbpLoginResultType.InvalidPassword, tenant, user);}await UserManager.ResetAccessFailedCountAsync(user);}return await CreateLoginByMobileResultAsync(user, tenant);}}
        /// <summary>/// 创建手机号登陆结果/// </summary>/// <param name="user">用户</param>/// <param name="tenant">租户</param>/// <returns></returns>protected virtual async Task<AbpLoginResult<Tenant, User>> CreateLoginByMobileResultAsync(User user,Tenant tenant = null){//用户未激活if (!user.IsActive)//返回用户未激活return new AbpLoginResult<Tenant, User>(AbpLoginResultType.UserIsNotActive, tenant, user);//用户手机号未认证if (!user.IsPhoneNumberConfirmed)//返回用户手机号未认证return new AbpLoginResult<Tenant, User>(AbpLoginResultType.UserPhoneNumberIsNotConfirmed, tenant, user);user.LastLoginTime = Clock.Now;//更新用户await _userManager.UpdateAsync(user);await _unitOfWorkManager.Current.SaveChangesAsync();var principal = await _claimsPrincipalFactory.CreateAsync(user);return new AbpLoginResult<Tenant, User>(tenant,user,(ClaimsIdentity)principal.Identity);}

这就是添加手机号登录的代码,添加的相关的其他方法,参照手机验证码登录里面的代码.

Abp Core添加手机登录功能相关推荐

  1. Abp Core 添加短信验证码登录(动态密码登录)

    交流QQ群:555913397 有什么问题可以加群大家一起交流 Abp Core 添加短信验证码登录(动态密码登录) 现目前我国网站的已经很少使用电子邮箱了,基本上都是手机号作为账号,有时候粗心的用户 ...

  2. 【尚医通】手机登录功能

    文章目录 1.功能概述 2.短信服务 3.登录校验代码 1.功能概述 该项目的手机登录功能是采取 手机号 + 验证码 的方式进行登录验证,所以该功能需要阿里云短信服务的支持,如今由于我们个人没办法申请 ...

  3. 获取微信通讯录php,微信小程序实现添加手机联系人功能实现方法

    本文主要介绍了微信小程序实现添加手机联系人功能,结合实例形式分析了微信小程序添加联系人的具体步骤,包括布局与逻辑实现技巧,需要的朋友可以参考下,希望能帮助到大家. 本文实例讲述了微信小程序实现添加手机 ...

  4. android开发笔记之联系人中添加手机铃声功能的实现

    这二天,在联系人(Contacts)的新建编辑界面添加了一个来电手机铃声的功能,现在把一些关键的地方写出来,做一个小笔记吧. 1. 功能需求: 在新建编辑联系人界面,添加一个手机铃声入口,点击可以进入 ...

  5. 【C#】ASP.NET网页中添加单点登录功能

    背景 首先,要说明的是,原先需求定义的是,同一个账号只能同时有一个人来登录,如果另外一个登录的话,前一个登陆者就自动被踢掉.本来原先要做成存储到服务器的数据库中,但是后来如果是非正常退出的话 下次就没 ...

  6. web前端 | 博客(二)登录功能

    实现登录功能 创建用户集合,初始化用户 连接数据库 创建用户集合 初始化用户 为登录表单项设置请求地址,请求方式(GET方法会将参数放到地址栏中,不隐蔽,要用POST方法,它将参数放到消息体中,比较隐 ...

  7. 8、ABPZero系列教程之拼多多卖家工具 添加手机注册登录功能

    现在网站基本都用手机注册,很少用邮箱注册,本篇内容比较多,代码我会尽量加备注,有些操作需要连续添加几个文件才不报错,如果VS显示错误,请继续后续步骤. 前面已经有一篇文章讲到集成短信发送模块:http ...

  8. 手机短信注册验证与登录功能

    文章目录 一.前言 二.准备工作 三.发布短信 1.基本测试发布 ①可-使用测试模板进行调试 ②测试结果 ③注意,可能会调试失败,是因为没有余额.进入首页点击头像>进入余额充值:一条大概4分钱 ...

  9. 手机短信验证码一键注册登录功能开发 1

    1. 首先根据业务分析, 先要在前端填写我们的手机号, 发送短信验证码给我们的用户 对于我们后端来说, 发送验证码就是我们要开发的接口, 手机号就是我们传入的参数,然后就可以编写相应的代码了 @Api ...

最新文章

  1. 工作流引擎 Activiti 实战系列
  2. 《编程匠艺》读书笔记之十四
  3. 关于navicat提权的方法
  4. npm 安装less插件_node+npm+webpack+less安装
  5. JAVA 捕获异常所遇BUG
  6. ECCV 2020 | 超快的车道线检测
  7. 【Elasticsearch】使用 Elasticsearch Painless 脚本以递归方式遍历 JSON 字段
  8. java byte与char互转原理
  9. VA_X 飘云阁过期后的处理办法
  10. 安卓稳定性测试必备工具Monkey详解
  11. 10被动语态,双重所有格
  12. 视频文案合并,清除原视频声音让文案转语音
  13. QTREE系列1,4,5,6,7 LCT
  14. 计算机常用截图方法,电脑截屏技巧 教你几种常见的截屏方法
  15. Invalid default value for ‘updated_at‘
  16. 基于Android的本地电子书阅读器的设计与实现Ebook(3)
  17. 深入了解宽带路由器共享上网原理
  18. 打造“财务中台”,浪潮云ERP助推企业业财融合、强化管控
  19. 图片标题生成器(literature:Show and Tell: A Neural Image Caption Generator)
  20. 统一写入筛选器(UWF)常用命令

热门文章

  1. 非华为电脑装华为电脑管家蓝屏和协同起不来的解决方案
  2. Cycle GAN(复现)---笔记
  3. rdkit 绘制分子【可视化分子】
  4. dequeue java_[转载]队列queue和双端Dequeue
  5. 江西地区媒体邀约资源现场官方直播推荐
  6. mac上超级好用的划词、截图翻译器bob
  7. postgreSQL查询 获取行号 rownum,解决方案
  8. [BZOJ1614][Usaco2007 Jan]Telephone Lines架设电话线
  9. jenkins实现cocoapods官方sepc库映射自动更新
  10. 反射大师怎么使用_反射式膜厚仪怎么判断状态是否正常