1、微信开发中openid用于唯一标记用户身份,但是openid关系用户隐私,没有过期时间,一旦丢失后果严重;
2、小程序官方文档已经给出了微信登录获取openid的相关接口,但是由于出于安全考虑,不能直接将openid返回给客户端;
3、思路简述:小程序登录获取code,传入code调用服务端程序UserToken获取openid、session_key,可以存在服务端,比如缓存中;为用户生成token用于后续请求的身份验证。
class UserToken extends Token
{
protected $code;
protected $wxLoginUrl;
protected $wxAppID;
protected $wxAppSecret;
function __construct($code)
{
$this->code = $code;
$this->wxAppID = config('wx.app_id');
$this->wxAppSecret = config('wx.app_secret');
$this->wxLoginUrl = sprintf(
config('wx.login_url'), $this->wxAppID, $this->wxAppSecret, $this->code);
}
/**
* 登陆
* 思路1:每次调用登录接口都去微信刷新一次session_key,生成新