introduce.md 2.0 KB

plugin-login-auth

登录弹窗插件,重构于历史PC端网站登录弹窗相关业务 login.js

UI效果

ui.png

业务逻辑梳理

model-1.png model-2.png

设计概要

outline.png

重构进度

已完成

  1. 登录
  2. 注册
  3. 设置密码
  4. 微信登录
  5. 绑定手机号(UI及逻辑)

待办

  1. 绑定手机号业务
  2. 其他登录后业务

    /**
    * 统一业务成功后分发处理
    *
    * 历史业务逻辑梳理:
    * 0. 是否需要设置密码(前置处理,不进入该分发,只更新用户信息)
    * 1. 处理返回值,统一格式
    * 2. 按顺序依次处理历史业务
    *  2.0 更新用户头像等状态【已提髙到前置处理】
    *  2.1 是否需要 set Cookies
    *  2.2 是否需要重新登录
    *  2.3 是否需要绑定手机号
    *  2.4 TODO 是否需要新窗口打开<新用户兴趣偏好设置页面>
    *  2.5 TODO 是否需要展示新用户引导 pc-guide
    *  2.6 TODO 历史全局状态维护 【迁移SDK新方式】
    *  2.7 TODO 消息提示获取
    * 3. TODO 其他业务 原 processpage 函数
    *  3.1 登录后返回指定URL
    *  3.2 登录后特定页面操作
    * 4. TODO 原全局 loginCallback 回调 【迁移SDK新方式】
    */
    

使用

引用

<script src='{{Cdn}}/jyseo/js/jy-login.umd.js?v={{Msg "version"}}'></script>

初始化

已默认检测 @core/emiiter 并挂载 window.jyCoreSDK,注入 login 插件。

this.instance = window.jyCoreSDK.$plugins['login'].getInstance()
this.instance.init({
    preloadLoginState: true
})

// Hooks 登录相关回调绑定
function bindHooks () {
  window.jyCoreSDK.$on('user-login-success', this.handleLoginSuccess.bind(this))
  window.jyCoreSDK.$on('user-sign-out', this.handleSignOut.bind(this))
  window.jyCoreSDK.$on('user-info-update', this.handleInfoUpdate.bind(this))
}

应用场景记录

| 版本 | 日期 | 说明 | | ---- | ------- |--| | v1.0.1 | 2023-11 | jyseo、bxseo、jycms 项目已集成 |