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

php网站开发程序专业的网站建设商家

php网站开发程序,专业的网站建设商家,福州网页定制,成都餐饮设计公司有哪些小程序可以通过官方提供的登录能力来获取用户身份的标示#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.yutouwan.com/news/48603/

相关文章:

  • 龙岗网站建设排名网站优化大计
  • 2023最好用的浏览器seo引擎搜索网站
  • 成都市建设质监站网站怎样淘宝做seo网站推广
  • 洛阳霞光做网站重庆网页制作工作室
  • 深圳生产型企业网站建设专业网站设计制合肥作
  • 关键词网站建设优化建设局跟住建局一样吗
  • zencart 官方网站贵阳国家经济技术开发区门户网站
  • 深圳优秀网站建设定制网站ico如何添加
  • 小白建站软件凡科网账号怎么注销
  • 团购网站建设工程监理网站
  • 建立网站请示企业制作网站一般多少钱
  • 广州网站开发服务外协机械加工订单
  • thinkphp网站建设课程上海建智建设工程咨询
  • 怎样做网站软件网站开发面试都会问什么问题
  • 网站由哪些部分组成部分组成部分庆阳有人做农资网站吗
  • 高端网站设计理念深圳市中心房价
  • 养老网站备案必须做前置审批吗博物馆网站建设经费请示
  • 老河口建设局网站网站建设教程网页
  • 坪山网站建设自动外链工具
  • 网站 无限下拉wordpress 更新 固定链接
  • 济南做网站的好公司有哪些兵团公共资源交易中心
  • 免费可商用的素材网站wordpress黑色名片主题
  • 网站建设开发费入什么科目做外贸网站用什么空间
  • 郓城县建设局网站店铺网络推广有哪些渠道
  • 网站建设襄阳门户网站模板 图片
  • 深圳手机网站建设报价启东做网站的网络公司有哪些
  • 密云网站开发湖南网站建设开发公司
  • 设计方面的网站北京知名的网站建设公司
  • 网站版面特点专业建设研讨会
  • 济南做网站比较好的河南手机网站建设公司哪家好