微信小程序验证码登录php开发哪些接口【微信登录数据库php 微信数据库密钥】微信小程序验证码登录 php开发需要实现以下接口:
1. 获取验证码接口(api/captcha.php):当用户在小程序输入手机号码并点击获取验证码的按钮时 , 小程序需要向后台发送请求以获取验证码 。在该接口中,需要通过 PHP 随机生成 6 位数字验证码、记录验证码和手机号的对应关系,并将验证码返回给小程序 。
2. 校验手机号和验证码接口(api/login.php):当用户在小程序输入手机号和验证码,并点击“登录”按钮时,小程序会向服务器发送请求 , 以确认用户输入是否正确 。在该接口中,需要首先校验用户手机号和验证码是否匹配,如果校验通过,需要生成一个 Token(例如使用 JWT) , 并把 Token 返回给小程序 。
3. Token 验证接口(api/check_token.php):当用户在小程序访问需要登录才能访问的页面时,小程序需要携带 Token 发送请求至后台 。在该接口中,需要验证 Token 的有效性,如果 Token 未过期且符合要求,则返回信息给小程序 。
上述三个接口是验证码登录的基本实现接口,建议在实现时 , 添加必要的安全校验措施,比如防止恶意攻击、防止 SQL 注入等 。
怎么样使用php的laravel框架快速集成微信登录1. 安装php_weixin_provider
在项目下运行composer require thirdproviders/weixin , 即可完成安装 。安装成功后,在项目的vendor目录下应该能看到php_weixin_provider的库文件:
image
2. 配置微信登录的参数
一共有7个参数可以配置 , 分别是:
client_id:对应公众号创建的应用appid
client_secret:对应公众号创建的应用appid
redirect:对应微信授权成功后的回调地址
proxy_url:对应微信授权的代理服务地址(其作用可阅读这篇文章了解)
device:区别是PC端微信登录还是移动端微信登录,默认值为pc,如果是移动端,可设置为空
state_cookie_name:授权链接中会包含随机的state参数 , 这个参数在微信回调的时候会原封不动的返回来,届时可通过验证state参数是否与授权链接中传入的参数相同,来判断请求是否有效 , 防止CSRF攻击 。这个方案 , 会在授权时把state参数先存到cookie里面,所以这个参数用来指定这个state参数存入的cookie名称,默认值是wx_state_cookie
state_cookie_time:指定wx_state_cookie的有效时长,默认是5分钟
这七个参数有2种设置方式 。
第一种是把这些参数以大写的形式配置到.env配置文件里面:
image
注:1、每个配置项都是大写,且以WEIXIN_开头;2、前三个配置项与前面介绍的参数名称不完全一致,KEY对应client_id,SECRET对应client_secret,REDIRECT_URI对应redirect;3、其它的与前面介绍的参数名称一致 。
第二种是把这些参数配置到config/services.php文件里面去:
image
这种方式的配置,每个配置项的名称与前面介绍的一致 。
要注意的内容:
由于php_weixin_provider是基于laravel/socialite实现的,它要求必须配置client_id,client_secret和redirect,否则php_weixin_provider实例化过程就会出错;对于client_id和client_secret,我认为统一配置在一个地方是没有问题的,但是对于redirect,如果统一配置,不一定符合所有场景的需求,因为不是每一个用到微信登录的地方 , 最后的回调地址都是同一个;所以建议把redirect先配置成一个有效或无效非空的回调地址;反正在后面使用php_weixin_provider的时候还可以在调用的时候更改这个参数的值 。
推荐阅读
- 安卓绘画形状检测app,可以画形状的app
- jquery点击改变其文本html,jquery 点击
- 计算机应用毕业设计怎么写,计算机应用专业的毕业设计
- 经营游戏看性格,游戏分类看人性格
- JAVA怎么终止代码 java如何终止程序
- 微信什么时候能直播,微信什么时候直播推流最多
- oracle取数生成文件名,oracle数据库导出数字为文本格式
- 阿里云服务器收入,阿里云服务器费用一年多少
- python中栈函数 python3 栈