wesley.chen 7 tahun lalu
induk
melakukan
b18d5b5193

+ 31 - 10
app/Http/Controllers/Api/V1/HomeController.php

xqd xqd xqd
@@ -12,6 +12,7 @@ use App\Models\ProductScheduleModel;
 use App\Models\SettingInfoModel;
 use App\Models\StoreInfoModel;
 use App\Models\UserCouponRelationModel;
+use App\Models\UserInfoModel;
 use App\Models\UserScheduleModel;
 use Carbon\Carbon;
 use EasyWeChat\Factory;
@@ -19,7 +20,7 @@ use function foo\func;
 use Illuminate\Http\Request;
 use App\Services\Base\Attachment;
 use App\Services\Base\ErrorCode;
-use Validator, Response;
+use Validator, Response,Auth, Cache;
 
 class HomeController extends Controller
 {
@@ -78,25 +79,45 @@ class HomeController extends Controller
 
     public function login(Request $request)
     {
-        $code = $request->get('code');
-        $session = $this->app->auth->session($code);
-        \Log::info(json_encode($session));
-        $openid = $session['openid'];
+//        $code = $request->get('code');
+//        $session = $this->app->auth->session($code);
+//        \Log::info(json_encode($session));
+//        $openid = $session['openid'];
+        $openid = 'olAS94uwfTdsL3nDnvG67p_v5Vks';
+        if(!$openid){
+            $data = [
+                'code' => 500,
+                'msg' => '获取openid失败!'
+                ];
+            return $this->api($data);
+        }
 
-        $userinfo = UserInfoModel::where('openid', $openid)->first(['id', 'nickname', 'openid', 'has_agreed']);
 
-        if ($userinfo) {
-            return $this->api(compact('userinfo'));
-        } else {
+        $userinfo = UserInfoModel::where('openid', $openid)->first(['id', 'nickname', 'openid']);
+
+        if (!$userinfo) {
             $data['openid'] = $openid;
             $data['nickname'] = $request->get('nickName');
             $data['avatar'] = $request->get('avatar');
 
             $userinfo = UserInfoModel::create($data);
+        }
+
 
-            return $this->api($userinfo);
+        if (Auth::loginUsingId($userinfo->id)) {
+            $user = Auth::user();
+            $token = $user->createToken($user->id . '-' . $user->openid)->accessToken;
+            return $this->api(compact('token', 'user'));
+        } else {
+
+            return $this->error(ErrorCode::INCORRECT_USER_OR_PASS);
         }
 
+
+
+
+
+
     }
 
     /**

+ 2 - 1
app/Models/UserInfoModel.php

xqd xqd
@@ -2,6 +2,7 @@
 
 namespace App\Models;
 
+use Laravel\Passport\HasApiTokens;
 use Illuminate\Database\Eloquent\SoftDeletes;
 use Illuminate\Foundation\Auth\User as Authenticatable;
 
@@ -14,7 +15,7 @@ use Illuminate\Foundation\Auth\User as Authenticatable;
  */
 class UserInfoModel extends Authenticatable
 {
-    use SoftDeletes;
+    use SoftDeletes,HasApiTokens;
     /**
      * 数据表名
      *

+ 2 - 0
app/Providers/AuthServiceProvider.php

xqd xqd
@@ -4,6 +4,7 @@ namespace App\Providers;
 
 use Illuminate\Support\Facades\Gate;
 use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
+use Laravel\Passport\Passport;
 
 class AuthServiceProvider extends ServiceProvider
 {
@@ -25,6 +26,7 @@ class AuthServiceProvider extends ServiceProvider
     {
         $this->registerPolicies();
 
+        Passport::routes();
         //
     }
 }

+ 2 - 2
config/auth.php

xqd xqd
@@ -45,7 +45,7 @@ return [
             'provider' => 'admin_users',
         ],
         'api' => [
-            'driver' => 'token',
+            'driver' => 'passport',
             'provider' => 'users',
         ],
     ],
@@ -70,7 +70,7 @@ return [
     'providers' => [
         'users' => [
             'driver' => 'eloquent',
-            'model' => App\User::class,
+            'model' => App\Models\UserInfoModel::class,
         ],
 
         'admin_users' => [

+ 1 - 1
routes/api.php

xqd
@@ -24,7 +24,7 @@ $api = app('Dingo\Api\Routing\Router');
 
 $api->version('v1', ['namespace' => 'App\Http\Controllers\Api\V1'], function ($api) {
 
-    $api->get('home/login', [
+    $api->post('home/login', [
         'as' => 'home.login',
         'uses' => 'HomeController@login',
     ]);