前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第三方登录

第三方登录

作者头像
php007
发布2019-08-05 15:06:04
1K0
发布2019-08-05 15:06:04
举报
文章被收录于专栏:PHP专享栏PHP专享栏

一. 概述

在项目中, 实现微信登陆的功能, 描述如下:

  1. 打开网站首页, 点击登陆按钮, http://XXXX/index
  2. 点击登陆, 弹出二维码
  3. 手机微信扫码后, 跳转到公众平台
    • 如果用户已经关注, 则直接登陆
    • 如果用户没有关注, 就提示用户关注, 关注后, 直接登陆

扫码后到底 前台 -- 后台 -- 微信 之间发生了哪些不可告人的秘密呢? 本系列文章使用PHP-Laravel框架带大家一步一步实现微信登陆的功能

使用Laravel实现服务端 使用workerman实现websocket服务器

二. 原理

  1. 客户端点击登陆, 向后台发起请求, 获取ticket和scene_id(随机生成的整数)
  2. 客户端使用ticket向微信服务器发起请求, 获取二维码 https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=abc 并且向后台websocket服务端发起websocket连接, 并且推送scene_id, 后台将scene_id加入到连接数组里
  3. 用户使用微信扫码, 点击关注, 微信公众号将用户关注事件推送到PHP服务端
  4. PHP服务端使用openid请求微信服务器, 获取用户详细信息, 保存到数据表, 然后向websocket服务端推送openid和scene_id
  5. websocket服务端接收到php服务端推送来的openid和scene_id, 使用scene_id确定具体是哪一个客户端, 然后向其推送openid
  6. 客户端接收到websocket的推送, 携带openid向php服务端请求login登录接口, php服务端将openid写入到session中, 标识用户已经登录
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 风帆 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. 概述
  • 二. 原理
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档