当前位置: 首页 > news >正文

中山市网站制作培训机构好还是学校好

中山市网站制作,培训机构好还是学校好,兼积做调查挣钱网站,优秀网名小程序登录 涂鸦官方提供了登录能力,开发者可以通过相关 API 获取 App 的用户身份标识,快速的建立小程序内的用户体系。 登录流程 说明 需要调用 ty.login() 获取 临时登录凭证 code,并将 code 传到开发者服务器开发者服务器调用涂鸦云开发…

小程序登录

涂鸦官方提供了登录能力,开发者可以通过相关 API 获取 App 的用户身份标识,快速的建立小程序内的用户体系。

登录流程

说明
  1. 需要调用 ty.login() 获取 临时登录凭证 code,并将 code 传到开发者服务器
  2. 开发者服务器调用涂鸦云开发能力 API /1.0/token,传入 code,获取 access_token 及 uid,然后开发者根据 aceess_token 及 uid 自定义登录状态,并返回给前端,然后进行后续的交互。

注意:在开发小程序前,请先确保已经将小程序与云项目进行关联,关联方法请参考下面的服务器开发。

服务器开发

开发者服务器端要调用涂鸦云开发能力 API,需要创建云项目,并需要将云项目应用与小程序进行关联。

  • 使用 IoT 账号登录到 IoT 平台,选择云开发菜单,点击创建云项目

  • 创建成功后,即在云项目的详细页面中查询获取 Client ID 及 Client secret,用于请求 API 签名

 

  • 到小程序开发者平台,进入小程序开发设置菜单,点击云项目模块的 添加 按钮,然后选择对应的云项目关联。

相关文档:
  1. 云开发开发文档,可参考这里文档。
  2. API 签名机制,可参考这里

代码示例

小程序代码

import {getStorageSync,getSystemInfoSync,login,removeStorageSync,request,setStorageSync,getUserInfo,showModal,
} from '@ray-js/ray';const { code } = await login({});
const { nickName, avatorUrl } = new Promise((resolve, reject) =>getUserInfo({ success: resolve, failure: reject }),
);
request({url: `https://wwww.xxx.com/login`,method: 'POST',header: {'Content-Type': 'application/json',},data: {code,nickName,avatorUrl,},success: ({ data }: any) => {// 由于小程序没有 cookie,这时使用 storage 管理登录态setStorageSync({key: 'session',data,});},failure: () => {showModal({title: '提示',content: '登录失败',showCancel: false,});},
});

服务器端代码(这里使用 Nodejs Koa 实现)

import Koa from 'koa';
import KoaRouter from 'koa-router';
import crypto from 'crypto';
import axios from 'axios';
import bodyParser from 'koa-bodyparser';const app = new Koa();
const router = new KoaRouter();
const accessKey = '云开发 Client ID';
const secretKey = '云开发 Client Secret';// 登录接口
router.post(`/login`, async (ctx) => {const { code, nickName, avatorUrl } = ctx.request.body;// 加密处理const contentHash = crypto.createHash('sha256').update('').digest('hex');const t = +new Date();const nonce = '';const stringToSign = ['GET', contentHash, '', path].join('\n');const signStr = [accessKey, t, nonce, stringToSign].join('');const sign = crypto.createHmac('sha256', secretKey).update(signStr, 'utf8').digest('hex').toUpperCase();const { data } = await axios({// 不同的地区需要使用不同的域名地址,这里为中国区地址url: `https://openapi.tuyacn.com/v1.0/token?code=${code}&grant_type=2`,method: 'GET',headers: {t,sign,client_id: accessKey,sign_method: 'HMAC-SHA256',Dev_lang: 'Nodejs','Signature-Headers': '',},});let responseData;if (data.success) {const { uid } = data.result;responseData = {success: true,result: {sessionId: '1234567890', // 服务端自己生成一个唯一id,用于管理小程序登录状态},};} elseresponseData = {success: false,errMsg: data.msg,errCode: data.code,};{}ctx.body = responseData;
});app.use(bodyParser()).use(router.allowedMethods()).use(router.routes());app.listen(3000, async () => {console.log(`Server start on http://localhost:9000`);
});
http://www.yidumall.com/news/17632.html

相关文章:

  • python可以做网站后台吗广州专做优化的科技公司
  • 网站制作方案报价热点新闻事件素材
  • 潜江网站建设国内新闻最新消息10条
  • 广州市住房与城乡建设厅网站推广论坛有哪些
  • 宝鸡企业网站制作登录注册入口
  • 网站怎么做百度快照百度广告代理商
  • 如何用代码做分数查询的网站可以发布软文的平台
  • 男女做暖暖的免费观看网站广告图片
  • 做网站用java好还是c数字营销案例
  • 南京网站高端中国最新新闻
  • 云南集优科技网站小红书笔记关键词排名优化
  • 龙拓网站建设网站seo分析常用的工具是
  • 交通部的建设标准网站网络营销策划方案的目的
  • 网站设置的建设过程和准备阶段网站制作推广电话
  • aspcms手机网站插件个人博客网页设计
  • dw做网站一般是多大的尺寸seo优化快速排名
  • VPS如何做网站服务器百度旗下13个app
  • 免费咨询律师软件长春seo外包
  • 哪个网站上可以做初中数学题网站seo排名优化价格
  • 石家庄网站建设多少钱重大军事新闻
  • wordpress表单联系seo关键词快速排名前三位
  • 武汉 做网站seo职位要求
  • 优秀的网络广告案例sem和seo是什么职业岗位
  • 龙岩网站排名网站制作公司网站
  • 网站开发周记30篇seo是什么
  • 网站开发php工资潍坊网站seo
  • 网站规划与建设重要性理解与体会个人网站的制作模板
  • 东莞网站建设电镀挂具百度广告代运营公司
  • 廉政网站管理制度建设seo学徒
  • 新手如何做网站运营网站制作报价表