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

坑梓网站建设价格字节跳动小程序官网

坑梓网站建设价格,字节跳动小程序官网,网站策划布局,网站建站管理需要实现的效果就是在钉钉内点击应用能跳转到第三方网站并且免密登录 1.登录钉钉PC端管理后台 2.通过管理后台进去开发者后台 3.应用开发 创建H5微应用 4.应用创建成功后直接点权限管理全部授权 5.设置H5登录地址 6. 应用管理发布 至此需要配置的步骤全部已完成#xff0c;…需要实现的效果就是在钉钉内点击应用能跳转到第三方网站并且免密登录 1.登录钉钉PC端管理后台 2.通过管理后台进去开发者后台  3.应用开发 创建H5微应用 4.应用创建成功后直接点权限管理全部授权 5.设置H5登录地址  6. 应用管理发布 至此需要配置的步骤全部已完成需要记住已下三个参数后续开发时候会用到 Client ID、Client Secret、CorpId 上代码 前端用的VUE // 1.需要下载钉钉包 npm install dingtalk-jsapi --save// 2.引入包 import * as dd from dingtalk-jsapi;// 3.编写相关登录逻辑 async function initDD() {//判断是不是通过钉钉内打开的应用if (dd.env.platform ! notInDingTalk) {//进行钉钉登录操作dd.ready(() {//获取登录一次性凭证dd.runtime.permission.requestAuthCode({corpId: 换成自己对应的参数以上有说明, // 企业id}).then(ddRes {//凭证获取成功后调用后端登录接口完成相关自动登录逻辑loginDingTalk(ddRes.code).then(res {//记录应用登录凭证到本地userStore.updateToken(res.data.data.token);nextTick(() {//跳转到主页router.push(PageEnum.BASE_HOME);});});}).catch(err {alert(JSON.stringify(err));});});} } 后端.NET WebApi 接口 /// summary/// 用户登录./// /summary/// returns/returns[HttpPost(Login/DingTalk/{code})][AllowAnonymous][IgnoreLog]public async Taskdynamic LoginDingTalk(string code){DingUtil ding new DingUtil();//得到企业访问tokenstring accessToken ding.GetDingToken(Client ID对应自己应用, Client Secret对应自己应用);//得到当前钉钉登录的用户信息string strObj ding.GetUserInfoInApp(code, accessToken);JObject objData strObj.ToObject();//通过钉钉移动电话获取第三方本地用户信息UserEntity userEntity await _userRepository.GetFirstAsync(x x.MobilePhone.Equals(objData[Mobile]));if (userEntity null) throw Oops.Bah(当前应用无账号,请联系管理员);//获取到用户信息后完成自动登录相关逻辑 并返回第三方应用登录凭证给登录界面进行缓存var loginInput await GetUserInfoByUserAccount(userEntity.Account);var result await Login(loginInput);return new { code 200, data result };} using DingTalk.Api; using DingTalk.Api.Request; using DingTalk.Api.Response; using Mapster; using Minio.DataModel.Tracing; using NetTaste; using Org.BouncyCastle.Ocsp; using System.Text.RegularExpressions; using Tea; using static DingTalk.Api.Request.OapiRobotSendRequest; using static DingTalk.Api.Response.OapiV2DepartmentListsubResponse; using static DingTalk.Api.Response.OapiV2UserListResponse;namespace DingDing;/// summary /// 钉钉. /// /summary public class DingUtil {/// summary/// 访问令牌./// /summarypublic string token { get; private set; }/// summary/// token有效时间./// /summarypublic TimeSpan expiresTime { get; private set; }/// summary/// 构造函数./// /summary/// param nameappKey企业号ID./param/// param nameappSecret凭证密钥./parampublic DingUtil(string appKey, string appSecret){token GetDingToken(appKey, appSecret);}/// summary/// 构造函数./// /summary/// param nameappKey企业号ID./param/// param nameappSecret凭证密钥./parampublic DingUtil(){}/// summary/// 钉钉token./// /summary/// param nameappKey企业号ID./param/// param nameappSecret凭证密钥./param/// returns/returnspublic string GetDingToken(string appKey, string appSecret){try{var tokenurl https://oapi.dingtalk.com/gettoken;DefaultDingTalkClient client new DefaultDingTalkClient(tokenurl);OapiGettokenRequest req new OapiGettokenRequest();req.SetHttpMethod(GET);req.Appkey appKey;req.Appsecret appSecret;OapiGettokenResponse response client.Execute(req);if (response.Errcode 0){// 过期时间expiresTime DateTime.Now.Subtract(DateTime.Now.AddSeconds(response.ExpiresIn));return response.AccessToken;}else{throw new Exception(获取钉钉Token失败,失败原因: response.Errmsg);}}catch (Exception ex){return string.Empty;}}public string GetUserInfoInApp(string code, string accessToken){var client new DefaultDingTalkClient(https://oapi.dingtalk.com/topapi/v2/user/getuserinfo);OapiV2UserGetuserinfoRequest req new OapiV2UserGetuserinfoRequest();req.Code code;OapiV2UserGetuserinfoResponse rsp client.Execute(req, accessToken);if (rsp.Errcode 0){// 根据unionid获取useridstring unionid rsp.Result.Unionid;DefaultDingTalkClient clientDingTalkClient new DefaultDingTalkClient(https://oapi.dingtalk.com/topapi/user/getbyunionid);OapiUserGetbyunionidRequest reqGetbyunionidRequest new OapiUserGetbyunionidRequest();reqGetbyunionidRequest.Unionid unionid;OapiUserGetbyunionidResponse oapiUserGetbyunionidResponse clientDingTalkClient.Execute(reqGetbyunionidRequest, accessToken);if (oapiUserGetbyunionidResponse.Errcode 0){// 根据userId获取用户信息string userid oapiUserGetbyunionidResponse.Result.Userid;var user GetUserInfoByUserId(userid, accessToken);return user;}}return string.Empty;}/// summary/// 根据用户UserId取得用户信息./// /summary/// param nameuserId/param/// returns/returnsprivate string GetUserInfoByUserId(string userId, string accessToken){var client new DefaultDingTalkClient(https://oapi.dingtalk.com/topapi/v2/user/get);var req new OapiV2UserGetRequest();req.Userid userId;req.Language zh_CN;var res client.Execute(req, accessToken);if (res.Errcode 0) return res.Result.ToJsonString(); else throw new Exception(res.ErrMsg);}#region 用户 }
http://www.hkea.cn/news/14556173/

相关文章:

  • 免费管理软件开发平台怎么优化网站的单个关键词排名
  • 网站空间商 权限2022年最近一周新闻大事
  • 长沙人才网山西seo
  • 外贸网站商城建设可以自己做漫画的网站
  • 网站建设微信小程序开发o2o信息类平台有哪些
  • 合肥网站制作费用美团网站除佣金表格怎么做
  • 松岗专业做网站公司博客发布 网站模版
  • 网站开发报价表的文档杭州网站建设网络
  • 阿里云1核2g服务器能建设几个网站企点下载官网
  • 做网站价格需要多少钱常德论坛最新消息
  • 网站开发框架排行行业网站推广
  • 西安网站建设专业优化网站排名公司
  • 手机对比网站百度官网
  • 深圳有哪些网站建设公司装饰设计图片
  • 网站开发流程有几个阶段商家怎么入驻微信小程序
  • 彩票网站的统计怎么做杨凌做网站的公司
  • 网站开发时图片加载慢怎么解决网站开发流程荆州
  • 彩票网站建设哪里安卓 wordpress 源码
  • 网站充值记账凭证怎么做wordpress更改主题作者
  • 个人建站网站搬瓦工putty做网站
  • 做海关授权的网站找人注册公司多少钱
  • 深圳微信分销网站建设十大软件培训机构
  • 免费网站模板的制作方法ip网站怎么做
  • 短视频网站开发教程免费房屋建设图纸网站有哪些
  • 宁波环保营销型网站建设淘宝联盟做网站
  • 网站 实施网站建设公司宣传文案
  • 云南网站建设维修公司哪家好制作公司网站大概多少钱
  • 做网站需要用到哪些编程知识智能网站建设加工
  • python做网站的书画册宣传册设计样本
  • 鲅鱼圈网站建设安全证查询官网