| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <?php
- namespace App\Http\Controllers\api\procurement\wechat;
- use App\User;
- use Firebase\JWT\JWT;
- use App\Http\Controllers\Controller;
- use Illuminate\Database\Eloquent\Builder;
- use Illuminate\Support\Facades\Hash;
- class AuthController extends Controller
- {
- public function login()
- {
- $phone=request('phone');
- $password = request("password");
- $user=User::query()->with('roles')
- ->whereHas('userDetail',function ($query)use($phone){
- /** @var Builder $query */
- $query->where('mobile_phone',$phone);
- })->whereHas('roles',function ($builder){
- /** @var Builder $builder */
- $builder->whereIn('name',['供应商','收货员']);
- })
- ->first();
- if (!$user)return response()->json(['status'=>0,'message' => '当前用户不存在!'], 401);
- if (!Hash::check($password,$user->password)) return response()->json(['status'=>0,'message' => '很抱歉,您的手机号和密码不匹配'], 401);
- $credentials = [
- 'id'=>$user->id,
- 'name'=>$user->name,
- ];
- $token = $this->getJWTToken($credentials);
- $userType=0;
- foreach ($user->roles as $role){
- if ($role->name=='供应商')$userType=1;
- if ($role->name=='收货员')$userType=2;
- }
- return response()->json(['status'=>1,'message' => $userType,'data'=>$token], 200);
- }
- public function getJWTToken($value)
- {
- $time = time();
- $payload = [
- 'iat' => $time,
- 'nbf' => $time,
- 'exp' => $time+7200,
- 'data' => [
- 'id' => $value['id'],
- 'name' => $value['name']
- ]
- ];
- $key = env('JWT_SECRET');
- $alg = 'HS256';
- $token = JWT::encode($payload,$key,$alg);
- return $token;
- }
- }
|