前因
由于EasyWechat文档编写的不够完善,在这里补充一下。 官方提供的文档如下
$app = Factory::officialAccount($config);
$oauth = $app->oauth;
// 未登录
if (empty($_SESSION['wechat_user'])) {
$_SESSION['target_url'] = 'user/profile';
return $oauth->redirect();
// 这里不一定是return,如果你的框架action不是返回内容的话你就得使用
// $oauth->redirect()->send();
}
// 已经登录过
$user = $_SESSION['wechat_user'];
但是这不适用于在当前页面获取授权
的需求,而是跳转到一个新的页面 user/profile
实现方法
在这里提供一下我的写法参考
public static function login()
{
$app = Factory::officialAccount($config);
$customer = Session::get('customer_info');
if (!$customer){
if (!input('?code')){
$app->oauth->redirect(Url::full())->send();
return '';
}else{
$customer_info = $app->oauth->user();
Session::set('customer_info', $customer_info);
return $customer;
}
}
return $customer;
}
接着在任意地方
调用上述封装方法即可
$customer = Auth::login();
注意事项
- 代码中的Session为TP框架,其他框架或者原生 请替换为对应的处理。
扫描二维码,分享此文章