0.1.4 • Published 4 years ago

union-login v0.1.4

Weekly downloads
1
License
ISC
Repository
-
Last release
4 years ago

小程序统一登录 union-login

使用方式

1. 准备工作

引入资源

  • 【使用小程序原生开发】通过 npm 安装 yarn add union-login。需要配置公司内部 npm 源: http://npm.koolearn.com。小程序中使用 npm 包的细节参见微信官方文档;
  • 【使用三方框架开发】直接拷贝union-login目录到项目中, 仓库地址:git@git.koolearn-inc.com:ui/mp/union-login.git;

js 调用方式:

const unionLogin = require('union-login'); // npm 方式安装
const unionLogin = require('./miniprogram_npm/union-login/index'); // 目录拷贝方式安装

初始化配置

  • app.json 中添加新页面地址,路径前缀由实际项目决定
{
  "pages": [
    "miniprogram_npm/union-login/pages/bindWx/index",
    "miniprogram_npm/union-login/pages/bindNew/index"
  ],
}
  • app.js 中初始化登录相关配置
const unionLogin = require('union-login');
// 在进入 app 前初始化小程序相关配置
unionLogin.init({
    appId: 'your_app_id', // sso 定义的 app 标识,@代震 提供
    homePage: '/pages/demo/index', // 首页url
    bindWxPage: '/miniprogram_npm/union-login/pages/bindWx/index', // 微信绑定页面
    bindNewPage: '/miniprogram_npm/union-login/pages/bindNew/index', // 新手机号绑定页面
    appendUserInfo: {
        api: 'https://dailypractice.neibu.koolearn.com/math/dailypractice/userInfo', // 需注意配置环境
    },
    HOST_ENV: 'neibu' // 当前环境
});

2. 登录

const unionLogin = require('union-login');

unionLogin.login()
    .then(({ sid }) => {
        // 登录成功,返回sid,
    })
    .catch(({ type }) => {
        // type === 1
        // 用户未绑定账号, 用户点击触发授权手机号, 调用 unionLogin.toBindAccount(event) 绑定账号;

        // type === 2
        // 用户未授权用户信息,用户点击触发授权用户信息, 调用 unionLogin.userInfoLogin(event) 重新执行登录逻辑;
    });

3. 账号绑定成功

用户绑定成功之后,会使用 wx.reLaunch 返回首页, sid 存在页面链接中。eg. /pages/index/index?sid=user_sid_string
注:sid 拿到之后需要妥善处理,避免将带 sid 的链接暴露给其他用户。

其他

sso 内网账户解绑工具

https://sso-clear.neibu.koolearn.com/clearer.jsp

0.1.4

4 years ago