我是靠谱客的博主 安详摩托,最近开发中收集的这篇文章主要介绍laravel5.5 微信或者qq授权第三方登录接口,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.接口地址:

// 用户授权后回调的页面
Route::put('authCallback', 'LoginController@authCallback')->name("authCallback");

2.

public function authCallback(Request $request)
{
/**
* 1.验证数据合法性 type=1微信登录
type=2 QQ登录
* 2.是否登录过 未登录过添加信息
* 3.登录返回认证信息
*/
$type = $request->type;
if(!in_array($type, [1, 2])){
return result('类型不合法');
}
$data = $request->data;
$is_data = $this->formCheck->isEmpty($data, '数据');
if(!$is_data->code){
return result($is_data->msg);
}
$is_datajpush = $this->formCheck->isEmpty($request->jpush_reg_id, '极光识别码');
if(!$is_datajpush->code){
return result($is_datajpush->msg);
}
if(!is_json($data)){
return result('数据不合法');
}
$data = json_decode($data, true);
if(!in_array($data['sex'], ['男', '女'])){
return result('性别不合法');
}
$userData = [];
$userData['nickname'] = $data['nickname'];
$userData['sex'] = $data['sex'];
$userData['create_time'] = dateFormat();
$userData['jpush_reg_id'] = $request->jpush_reg_id;
if(1 == $type){
$userData['wechat_openid'] = $data['openid'];
$openid = 'wechat_openid';
}elseif(2 == $type){
$userData['qq_openid'] = $data['openid'];
$openid = 'qq_openid';
}
$userInfo = $this->login->one([$openid => $data['openid']]);
if(!$userInfo){
$id = $this->login->add($userData);
if(!$id){
return result('登录失败');
}else{
$userInfo = $this->login->one([$openid => $data['openid']]);
}
}
if(1 == $userInfo->is_disable){
return result('账号已被禁用,请联系管理员');
}
$loginData['remember_token'] = self::setToken();
$expire_time = strtotime("+7 days");
$loginData['expire_time'] = dateFormat($expire_time);
$this->login->updUser(['id' => $userInfo->id], $loginData);
unset($loginData['expire_time']);
$loginData['user_id'] = $userInfo->id;
$loginData['user_grade_id'] = $userInfo->user_grade_id;
$loginData['role_id'] = $userInfo->role_id;
$loginData['mobile'] = $userInfo->mobile;
return result('登录成功', 1, $loginData);
}
public static function setToken(){
// 生成一个不会重复的字符串
$str = md5(uniqid(md5(microtime(true)), true));
// 进行加密
$str = sha1($str);
return $str;
}

 

3.model模型:

<?php
namespace AppApiAuthModels;
use IlluminateDatabaseEloquentModel;
use IlluminateSupportFacadesDB;
class Login extends Model
{
protected $table = 'users';
// 查询一条数据
public function one($data){
return DB::table($this->table)->where($data)->first();
}
// 更新用户信息
public function updUser($where, $data){
return DB::table($this->table)->where($where)->update($data);
}
// 添加用户
public function add($data){
return DB::table($this->table)->insertGetId($data);
}
}

 

 

4.注意:

安卓或者IOS传过来数据格式:

{
 type = 2,
 data = "{"sex":"男","openid":"o5DA61FJwDE9hivVO863PthIDVtc","nickname":"。。。。。。"}",
}

 

返回给前端的数据格式:

{
    msg = "登录成功",
    data =     {
        mobile = "",
        remember_token = "9a47aec9951f30908c130f78806fdc038f025826",
        user_id = 33,
        role_id = 0,
        user_grade_id = 0,
    },
    code = 1,
}

 

 

最后

以上就是安详摩托为你收集整理的laravel5.5 微信或者qq授权第三方登录接口的全部内容,希望文章能够帮你解决laravel5.5 微信或者qq授权第三方登录接口所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部