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

中国机械加工网19易0下6拉enseo在线外链

中国机械加工网19易0下6拉en,seo在线外链,360免费网站建设,wordpress 接入外网就快小程序可以通过官方提供的登录能力来获取用户身份的标示#xff0c;具体文档可以参考 这里#xff0c;通过流程时序可以看到#xff0c;对于需要和前端配合的服务端开发#xff0c;主要实现的就是通过小程序提供的 code 换取用户的 openid 和 session_key#xff0c;并用换…     小程序可以通过官方提供的登录能力来获取用户身份的标示具体文档可以参考 这里通过流程时序可以看到对于需要和前端配合的服务端开发主要实现的就是通过小程序提供的 code 换取用户的 openid 和 session_key并用换取到的 openid 和 secret_key 作为自定义的登录态。分析后得知作为小程序后端的开发主要实现以下几部分内容:   - 提供一个 HTTP 接口供小程序方使用传递 code    - 换取用户身份标识    - 维护一个自定义的登录态        - 需要存储用户的 openid以备后续使用。   1. 提供给小程序一个 HTTP 接口接口使用 Tornado 框架      为了简化思路下面代码都没有做各种异常处理 class LoginHandler(RequestHandler):def post(self):req_data json.loads(self.request.body)js_code req_data.get(js_code)# 这里是换取用户的信息user_info get_user_info(js_codejs_code)openid user_info[openid]session_key user_info[session_key]user_uuid str(uuid.uuid4()) # 暴露给小程序端的用户标示# 用来维护用户的登录态User.save_user_session(user_uuiduser_uuid,openidopenid,session_keysession_key)# 微信小程序不能设置cookie把用户信息存在了 headers 中self.set_header(Authorization, user_uuid)# 存储用户信息User.save_user_info(open_idopenid)self.set_status(204)   2. 换取用户身份标示直接使用 Requests 请求微信的相关接口获取数据 1 def get_user_info(js_code):2 3 req_params {4 appid: app_id, # 小程序的 ID5 secret: secret, # 小程序的 secret6 js_code: js_code,7 grant_type: authorization_code8 }9 req_result requests.get(https://api.weixin.qq.com/sns/jscode2session, 10 paramsreq_params, timeout3, verifyFalse) 11 return req_result.json() 3. 维护一个自定义的登录态使用了 Redis 1 user_redis StrictRedis.from_url(redis//localhost:6379)2 3 4 class User(object):5 6 REDIS_EXPIRES 7 * 24 * 60 * 607 8 classmethod9 def save_user_session(cls, user_uuid, openid, session_key): 10 user_session_value { 11 openid: openid, 12 session_key: session_key 13 } 14 user_session_key US: user_uuid 15 with user_redis.pipeline(transactionFalse) as pipe: 16 pipe.hmset(user_session_key, user_session_value) 17 pipe.expire(user_session_key, cls.REDIS_EXPIRES) 18 pipe.execute()   4. 存储用户信息以备后用这里使用了 MySQLORM 使用的是 SQLAlchemy 1 from sqlalchemy import create_engine2 from sqlalchemy.ext.declarative import declarative_base3 4 # mysql 相关设置5 engine create_engine(mysql://root:localhost/wechat)6 conn engine.connect()7 8 Base declarative_base()9 Base.metadata.reflect(engine) 10 tables Base.metadata.tables 11 12 class User(object): 13 table tables[user] 14 15 classmethod 16 def save_user_info(cls, open_id): 17 # 存储用户信息 18 sql cls.table.insert().values(open_idopen_id) 19 conn.execute(sql) SQL 语句 CREATE TABLE user (id int(20) unsigned NOT NULL AUTO_INCREMENT,open_id varchar(32) NOT NULL COMMENT 用户 open_id,created_at timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,updated_at timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间,PRIMARY KEY (id),KEY idx_oid (open_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;   全部代码可以点击 这里 获取转载于:https://www.cnblogs.com/qiaojushuang/p/9171680.html
http://www.pierceye.com/news/389384/

相关文章:

  • 国家城乡与住房建设部网站做海报有什么参考的网站
  • 建德营销型网站建设企业邮箱地址怎么填写
  • 网站建设规划书总结怎么写wordpress 菜单链接
  • 网站目录程序重庆市建筑工程造价信息网官网
  • WordPress上传后找不到seo优化工程师
  • wordpress登录界面插件如何优化培训方式
  • 贵州建网站网站怎么优化自己免费
  • 个人网站介绍源码网站制作昆山
  • 网站开发属于知识产权吗如何制作软件程序
  • 外贸网站模板源码网络架构如何写
  • 网站建设美工的职位要求建材做哪些网站好
  • 淘宝客自建网站wap免费空间
  • python快速搭建网站如何制作一个微信刷题小程序
  • 域名备案与网站备案网站漏洞解决
  • 公明做网站多少钱高端网站设计怎么样
  • 重庆网站建设 熊掌号wordpress 被发文章
  • 网站建设管理视频广东省农业农村厅班子
  • 网站建设需要钱吗开发一个小程序流程
  • 通州富阳网站建设做足彩网站推广
  • 一个公司做网站需要注意什么条件车之家汽车官网
  • 石家庄网站建设网站建设网站的制作哪家好
  • 苏州晶体公司网站网站排名优化各公司的
  • 网站开发大致多少钱团队拓展训练
  • p2p网站建设方案卫龙模仿iphone做网站
  • 做盗版电影网站犯法吗Wordpress 淘宝客 页面
  • 自己做网站费用html5结构的网站
  • wordpress做资源分享站做网站的图哪来
  • 国外设计欣赏网站线上建模培训班哪个好
  • 微信网站建设合同怎么在本地搭建网站
  • 班级网站怎么做网页制作临沂网站制作方案