npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@aliedu/autologin

v3.2.5

Published

> 非常重要 !!!!! > > 出于安全因素,3.0.5 以上不再直接返回 token,而是返回 cubeUserId,需要改造为后端之间通过 cubeUserId+AK/SK 的方式获取用户登录态

Downloads

76

Readme

非常重要 !!!!!

出于安全因素,3.0.5 以上不再直接返回 token,而是返回 cubeUserId,需要改造为后端之间通过 cubeUserId+AK/SK 的方式获取用户登录态

教育魔方登录 sdk

集成 sdk

执行集成登录模块

npm install --save @aliedu/autologin

获取魔方用户 id

浙里办/浙里办小程序/钉钉获取 cubeUserId

特别注意!!! 调用该方法前,请先联系费司添加域名白名单,否则会因为跨域而无法调用成功。!!!!!!!!!

在发送需要登录态的请求前需要获取用户信息,前端通过 sdk 获取:

import { getCubeUserId } from "@aliedu/autologin"

let accessKey = "xxxxxxxxxxxxxxxxx"
async function yourfunction(accessKey, isDebug, isZXM) {
  try {
    const cubeUserId = await getCubeUserId(accessKey, isDebug, isZXM)
    // 自己项目中的网络请求
    xxxRequest(cubeUserId)
  } catch (error) {
    console.log("出错了")
    console.log(error)
  }
}

yourfunction(accessKey, isDebug, isZXM)

注意:

  • 获取 cubeUserId 是一个异步操作,请确保异步完成后再进行需要登录态的网络请求

  • getCubeUserId 参数:

    • accessKey: 应用的 AK.

    • isDebug: 是否是调试状态,是的话走日常环境,不是的话走线上环境。默认是线上环境

    • isZXM: 是否是浙学码应用,浙学码应用会走浙学码注册流程,否则未注册魔方用户时会报错

短信验证码获取 cubeUserId

其他环境下,可以通过短信验证码获取 token。

获取短信验证码:

import { getSmsCode } from "@aliedu/autologin"

async function yourfunction(isDebug, mobile) {
  try {
    const res = await getSmsCode(mobile, isDebug)
    if (res.success) {
      // 成功的处理逻辑
    } else {
      // 失败的处理逻辑
    }
  } catch (error) {
    console.log("出错了")
    console.log(error)
  }
}

yourfunction(isDebug, mobile)

短信验证码换取 token:

import { getCubeUserIdByPhone } from "@aliedu/autologin"

async function yourfunction(isDebug, idCard, mobile, smsCode, name, isZXM) {
  try {
    const sessionId = await getCubeUserIdByPhone(
      idCard,
      mobile,
      smsCode,
      isZXM,
      name,
      isDebug
    )
    // 自己项目中的网络请求
    xxxRequest(token)
  } catch (error) {
    console.log("出错了")
    console.log(error)
  }
}

yourfunction(isDebug, idCard, mobile, smsCode, name, isZXM)

注意:

  • getCubeUserIdByPhone 参数:

    • idCard: 身份证信息 必填

    • mobile: 手机号 必填

    • smsCode: 验证码 必填

    • isZXM: 是否是浙学码应用 选填,默认是否

    • name: 用户姓名 选填,isZXM 为 true 时建议填入

    • isDebug: 是否是调试状态,是的话走立场环境,不是的话走线上环境

是否授权

获取是否已授权状态。未授权会跳转授权界面,授权成功后,返回结果为 true。 注意,仅钉钉支持(浙里办里无法授权)。

import { authUserInfo } from "@aliedu/autologin"

async function yourfunction(isDebug, token) {
  try {
    const res = await authUserInfo(isDebug)
    if (res) {
      // 去获取身份信息
    }
  } catch (error) {
    console.log("出错了")
    console.log(error)
  }
}

yourfunction(isDebug, token)

注意:

  • authUserInfo 参数:
    • isDebug: 是否是调试状态,是的话走立场环境,不是的话走线上环境
  • 授权成功 res 为 true,否则通过 catch 获取 error 信息

浙学码集成

集成

浙学码通过 iframe 嵌入的方式集成。

<iframe
  id="ifra"
  src="{qrCodeUrl}"
  frameborder="0"
  scrolling="no"
  width="350px"
/>

qrCodeUrl

  • 日常环境为:https://daily-cube.zjedu.com/render/zxm/qrcodev2
  • 线上环境为:https://cube.zjedu.com/render/zxm/qrcodev2

非常重要,qrCodeUrl 改为了 v2 版本

动态高度

iframe 高度动态获取:

window.addEventListener("message", function (e) {
  if (e.data.type && e.data.type === "zhexuema" && e.data.data.frame) {
    console.log("外侧--- 接收到 frame 信息")
    console.log(e.data)
    var frame = document.getElementById("ifra")
    frame.style.height = e.data.data.frame.height + "px"
    frame.style.width = e.data.data.frame.width + "px"
  }
})

浙学码将在 DOMContentLoaded 时发送消息,请先于此监听,否则将无法获取到高度信息

登录态获取成功的通知

在调用 getCubeUserId 方法后,浙学码引擎会自动获取到登录态。第一次调用 getCubeUserId 后要通知浙学码引擎刷新页面。

通常情况下不需要传递空的 userInfo 对象,即可刷新页面

<iframe id="ifra" src="{qrCodeUrl}" frameborder="0" scrolling="no" />

<script>
  var frame = document.getElementById("ifra")
  frame.contentWindow.postMessage(
    {
      type: "zhexuema",
      data: {
        userInfo: {},
      },
    },
    "*"
  )
</script>

如果是家长代亮码的场景,需要传递参数:

  • 是否代亮码: represent
  • 学生 id: studentUserId
<iframe id="ifra" src="{qrCodeUrl}" frameborder="0" scrolling="no" />

<script>
  var frame = document.getElementById("ifra")
  frame.contentWindow.postMessage(
    {
      type: "zhexuema",
      data: {
        userInfo: {
          represent: true,
          studentUserId: "123456",
        },
      },
    },
    "*"
  )
</script>

同样需要注意此方法的调用时机,需要等到 iframe 中的监听注册完毕才可发送,否则内部无法获取到 token 信息。建议在获取到 哲学吗所在 iframe 发出的动态高度信息的回调中发送 token。接受到 token 后,将请求亮码接口