fromUser() public static method

Generate a token using the user identifier as the subject claim.
public static fromUser ( mixed $user, array $customClaims = [] ) : string
$user mixed
$customClaims array
return string
Ejemplo n.º 1
1
 /**
  * The register method is responsible for checking/validating
  * the given input (email and password) and either return an error code or
  * create a new user.
  *
  * @return mixed
  */
 public function register()
 {
     $validateUser = $this->validateUser();
     if ($validateUser->status == 'error') {
         return \Response::json($validateUser);
     } else {
         //All's good, create a new user
         $user = User::create(['name' => \Request::get('name'), 'email' => \Request::get('email'), 'password' => bcrypt(\Request::get('password'))]);
         if (!\Request::has('role')) {
             $role['role'] = 'mobile';
         } else {
             $role['role'] = 'web';
         }
         //assign role to user
         $role = Role::where('name', $role)->first();
         $user->roles()->save($role);
         $device = $this->sanitizeDevice($user->id);
         $this->deviceService->store($user->id, $device);
         //Retrieve the JWT and send back to the Controller
         $token = \JWTAuth::fromUser($user);
         $response = new ApiResponse();
         $response->status = 'success';
         $response->message = ['token' => $token];
     }
     return \Response::json($response);
 }
Ejemplo n.º 2
1
 protected function login()
 {
     if (isset($this->token)) {
         return;
     }
     $user = User::where('email', '=', env('TEST_MAIL'))->get()[0];
     $this->token = JWTAuth::fromUser($user);
 }
 public function testRoute()
 {
     $customer = Customer::whereEmail('*****@*****.**')->first();
     $token1 = JWTAuth::attempt(["email" => '*****@*****.**', "password" => "admin"]);
     $token2 = JWTAuth::fromUser($customer);
     $access_token = $token1;
     $response = $this->call('GET', '/testtoken', [], [], array('HTTP_authorization' => 'bearer ' . $access_token, "HTTP_custom" => "custom header"));
     $this->assertTrue($response->isOk());
 }
Ejemplo n.º 4
1
 /**
  * @param \App\User $user
  */
 protected function headers($user = null)
 {
     $headers = ['Accept' => 'application/json'];
     if (!is_null($user)) {
         $token = JWTAuth::fromUser($user);
         JWTAuth::setToken($token);
         $headers['HTTP_AUTHORIZATION'] = 'Bearer ' . (string) $token;
     }
     return $headers;
 }
Ejemplo n.º 5
0
 /**
  * @param \App\User $user
  */
 protected function headers($user = null)
 {
     $headers = ['Accept' => 'application/json'];
     if (!is_null($user)) {
         $token = JWTAuth::fromUser($user);
         JWTAuth::setToken($token);
         $headers['Authorization'] = 'Bearer ' . $token;
     }
     return $headers;
 }
 public function storeToken()
 {
     try {
         if ($user = Sentinel::stateless(Input::only('email', 'password'))) {
             return \JWTAuth::fromUser($user);
         } else {
             throw new UnauthorizedHttpException('Invalid Credentials');
         }
     } catch (\Exception $e) {
         //dd(get_class($e));
         throw new UnauthorizedHttpException('Unauthorized', $e->getMessage());
     }
 }
 public function up()
 {
     $validator = \Validator::make(\Request::all(), ['name' => 'required|max:100', 'email' => ['required', 'max:60', 'regex:/^.+@(\\w([\\w-]*\\w)?\\.)+\\w+$/', 'unique:users'], 'password' => 'required|min:6|max:100', 'captcha' => 'required|captcha']);
     if ($validator->passes()) {
         extract(\Request::all());
         $settings = Setting::getList();
         $user = User::create(['name' => $name, 'email' => $email, 'password' => \Hash::make($password), 'memory_count' => $settings['memory_count'], 'reading_count' => $settings['reading_count'], 'repeat_term' => $settings['repeat_term'], 'lesson_size' => $settings['lesson_size']]);
         $user->assignRole('user');
         $response = response()->json(['token' => \JWTAuth::fromUser($user)]);
     } else {
         $response = response()->json(['errors' => $validator->messages()->all()], 400);
     }
     return $response;
 }
Ejemplo n.º 8
0
 public function createUser(Request $request)
 {
     Log::debug("JWTAuthController.createUser.begin");
     try {
         $credentials = $request->json()->all();
         $credentials['password'] = Hash::make($credentials['password']);
         Log::debug("JWTAuthController.createUser:"******"JWTAuthController.createUser.exception:" . $e->getMessage());
         return response()->json($e->getMessage());
     }
     Log::debug("JWTAuthController.createUser.end");
     return response()->json('ok');
 }
Ejemplo n.º 9
0
 /**
  * Attempt to do login
  *
  * @return  Illuminate\Http\Response
  */
 public function postLogin()
 {
     $repo = App::make('UserRepository');
     $input = Input::all();
     if ($repo->login($input)) {
         $token = JWTAuth::fromUser(Auth::user());
         return $this->response->array(array('token' => $token));
     } else {
         if ($repo->isThrottled($input)) {
             $err_msg = Lang::get('confide::confide.alerts.too_many_attempts');
         } elseif ($repo->existsButNotConfirmed($input)) {
             $err_msg = Lang::get('confide::confide.alerts.not_confirmed');
         } else {
             $err_msg = Lang::get('confide::confide.alerts.wrong_credentials');
         }
         return $this->response->errorNotFound(array('message' => $err_msg));
     }
 }
 public function testWorkflow()
 {
     $customer = Customer::whereEmail('*****@*****.**')->first();
     $customer->cart = null;
     $customer->wishlist = null;
     $token = JWTAuth::fromUser($customer);
     //Initial get without login
     $response = $this->call('GET', '/');
     $app = app();
     $shoppingCart = $app->settings->carts[Cart::SHOPPING_CART];
     $this->assertEquals(0, count($shoppingCart->items));
     $response = $this->action('POST', 'StoreController@addToCart', array('cart_type' => Cart::SHOPPING_CART, 'product_id' => 43, 'quantity' => 1));
     $response = $this->call('GET', '/');
     $response = $this->action('POST', 'StoreController@addToCart', array('cart_type' => Cart::SHOPPING_CART, 'product_id' => 44, 'quantity' => 1));
     $this->assertEquals(2, count($shoppingCart->items));
     //login
     $response = $this->call('GET', '/', [], [], array('HTTP_authorization' => 'bearer ' . $token));
     $this->assertEquals(2, count($shoppingCart->items));
 }
Ejemplo n.º 11
0
 private function _createToken($user)
 {
     $token = JWTAuth::fromUser($user);
     JWTAuth::setToken($token);
     return $token;
 }
Ejemplo n.º 12
0
 /**
  * @return string|null
  */
 function refresh_jwt_token()
 {
     $jwt_token = null;
     if (\Auth::check()) {
         $jwt_token = \JWTAuth::fromUser(current_auth_user());
         \Session::put('jwt_token', $jwt_token);
     }
     return $jwt_token;
 }
Ejemplo n.º 13
0
 /**
  * 昵称 type
  */
 public function signup()
 {
     $token = $this->request->get('smsToken');
     $validator = \Validator::make($this->request->all(), ['user_name' => 'required|between:4,12|unique:customers|Regex:/^[a-z0-9]{4,12}$/', 'mobile' => "required|confirm_mobile_not_change:{$token}", 'password' => 'required', 'verifyCode' => "required|verify_code:{$token}|confirm_mobile_rule:mobile_required,{$token}"], ['verifyCode.required' => '请输入短信验证码', 'verify_code' => '验证码错误', 'confirm_mobile_not_change' => '当前手机号码与发送号码不符', 'confirm_mobile_rule' => '验证码验证错误', 'user_name.unique' => '用户名已注册', 'user_name.regex' => '用户名必须为小写字母或数字', 'user_name.between' => '用户名必须为4-12位']);
     $messages = $validator->messages();
     if ($messages->has('mobile')) {
         $mobiles_rule = $messages->get('mobile');
         foreach ($mobiles_rule as $mobile_rule) {
             if ($mobile_rule == '当前手机号码与发送号码不符') {
                 return return_rest('0', '', '当前手机号码与发送号码不符');
             }
         }
     }
     if ($messages->has('verifyCode')) {
         $verifyCodes = $messages->get('verifyCode');
         foreach ($verifyCodes as $verifyCode) {
             if ($verifyCode == '请输入短信验证码') {
                 return return_rest('0', '', '请输入短信验证码');
             }
             if ($verifyCode == '验证码错误') {
                 return return_rest('0', '', '验证码错误');
             }
             if ($verifyCode == '验证码验证错误') {
                 return return_rest('0', '', '验证码验证错误');
             }
         }
     }
     if ($messages->has('password')) {
         return return_rest('0', '', '请输入密码');
     }
     if ($messages->has('user_name')) {
         if ($mobile_rule == '用户名已注册') {
             return return_rest('0', '', '用户名已注册');
         }
         if ($mobile_rule == '用户名必须为小写字母或数字') {
             return return_rest('0', '', '用户名必须为小写字母或数字');
         }
         if ($mobile_rule == '用户名必须为4-12位') {
             return return_rest('0', '', '用户名必须为4-12位');
         }
     }
     //增加环信注册 失败返回false
     $easemob = Easemob::user_register($this->request->get('user_name'), $this->request->get('password'));
     //TODO
     if (isset($easemob['mobile'])) {
         return return_rest('0', '', '该用户已注册环信');
     }
     //设置用户相关信息
     $mobile = $this->request->get('mobile');
     $password = $this->request->get('password');
     //TODO 用户类型 设置默认为3游客 1为创业者2为投资人
     $type = $this->request->has('type') ? $this->request->get('type') : 3;
     //TODO 其他信息
     $customer = new Customer();
     $customer->user_name = $this->request->get('user_name');
     $customer->mobile = $mobile;
     $customer->password = bcrypt($password);
     $customer->type = $type;
     $customer->avatar = 'http://image.haihespace.com/default/avatar/avatar.jpg';
     if ($customer->save()) {
         // 用户注册事件
         $token = \JWTAuth::fromUser($customer);
         //为用户生成头像
         //            $img = Image::make('uploads/avatars/avatar.jpg');
         //            $img->save('uploads/avatars/'.$mobile.'.jpg');
         return return_rest('1', compact('token', 'customer'));
     }
     $this->errorBadRequest(return_rest('0', '', '操作失败'));
 }
Ejemplo n.º 14
0
 protected function login($user_id = 1)
 {
     $user = User::find($user_id);
     $this->token = JWTAuth::fromUser($user);
     JWTAuth::setToken($this->token);
     Auth::login($user);
 }
Ejemplo n.º 15
0
 /**
  * Get the JWT for the current user.
  */
 protected function getJWT()
 {
     if ($user = $this->auth->check()) {
         return \JWTAuth::fromUser($user);
     }
 }
 private function setAuthUserToken()
 {
     $authUser = factory(App\User::class)->create();
     $this->authUser = $authUser;
     $this->authUserToken = JWTAuth::fromUser($authUser);
 }
Ejemplo n.º 17
0
Route::get('/', function () {
    return view('welcome');
});
Route::post('signup', function (Request $request) {
    $validator = Validator::make($request->all(), ['name' => 'required|max:255', 'email' => 'required|email|max:255', 'password' => 'required|max:255']);
    if ($validator->fails()) {
        return response()->json(['error' => 'Validation Error', 'validation_errors' => $validator->errors()], 400);
    }
    $credentials = $request->only('name', 'email', 'password');
    $credentials['password'] = Hash::make($credentials['password']);
    try {
        $user = User::create($credentials);
    } catch (Exception $e) {
        return response()->json(['error' => 'User already exists.'], 409);
    }
    $token = JWTAuth::fromUser($user);
    return response()->json(compact('token'));
});
Route::post('signin', function (Request $request) {
    $validator = Validator::make($request->all(), ['email' => 'required|email|max:255', 'password' => 'required|max:255']);
    if ($validator->fails()) {
        return response()->json(['error' => 'Validation Error', 'validation_errors' => $validator->errors()], 400);
    }
    $credentials = $request->only('email', 'password');
    try {
        $user = User::where('email', $request->email)->firstOrFail();
    } catch (ModelNotFoundException $e) {
        return response()->json(['error' => 'invalid_credentials'], 401);
    }
    if (!($token = JWTAuth::attempt($credentials, ['name' => $user->name]))) {
        return response()->json(['error' => 'invalid_credentials'], 401);
Ejemplo n.º 18
0
 /**
  *忘记密码 检查verify code
  */
 public function forgetVerify()
 {
     $token = $this->request->get('smsToken');
     $validator = \Validator::make($this->request->all(), ['mobile' => "required|exists:customers", 'verifyCode' => "required|verify_code:{$token}|confirm_mobile_rule:mobile_required,{$token}"], ['mobile.required' => '缺少手机号码字段', 'mobile.exists' => '手机号码未注册', 'verifyCode.required' => '缺少验证码字段', 'verify_code' => '验证码错误', 'confirm_mobile_not_change' => '手机号码与发送验证码手机不符', 'confirm_mobile_rule' => '验证失败']);
     $messages = $validator->messages();
     if ($messages->has('mobile')) {
         $mobiles_rule = $messages->get('mobile');
         foreach ($mobiles_rule as $mobile_rule) {
             if ($mobile_rule === '手机号码未注册') {
                 return return_rest('0', '', '手机号码未注册');
             }
         }
         return return_rest('0', '', '手机号码输入有误');
     }
     if ($messages->has('verifyCode')) {
         $verifyCodes_rule = $messages->get('verifyCode');
         foreach ($verifyCodes_rule as $verifyCode_rule) {
             if ($verifyCode_rule === '手机号码与发送验证码手机不符') {
                 return return_rest(0, '', '手机号码与发送验证码手机不符');
             }
         }
         return return_rest('0', '', '验证码错误');
     }
     //验证通过
     $customer = $this->modelCustomer->getCustomerByMobile($this->request->get('mobile'));
     //设置用户为登录状态
     $token = \JWTAuth::fromUser($customer);
     return return_rest('1', compact('token'), '验证成功');
 }
Ejemplo n.º 19
0
<?php

Route::get('admin', ['middleware' => ['auth', 'admin'], function () {
    $user = Auth::user();
    $user = array_except($user, ['created_at', 'updated_at']);
    if (Auth::user()->hasGroup('admin')) {
        $customClaims = ['group' => 'admin'];
        $token = JWTAuth::fromUser($user, $customClaims);
    }
    return view('admin', compact('token'));
}]);
// api for admin pages
Route::group(['prefix' => 'admin/api', 'middleware' => ['jwt.auth', 'jwt.admin']], function () {
    // route used by content-create.js
    Route::post('content', 'AdminController@postContent');
    // route used by content-view.js
    Route::get('content/{id}', 'AdminController@getContent');
    // route used by content-settings.js
    Route::put('content/{id}', 'AdminController@updateContent');
    // route used by editor.js
    // Route::post('content/{id}', 'AdminController@postEditor');
    // route used by file-manager.js
    Route::post('upload/{id}', 'AdminController@postUpload');
});
Ejemplo n.º 20
0
 /**
  * @api {post} /auth/signup 注册
  * @apiDescription 注册
  * @apiName auth/signup
  * @apiGroup Auth
  * @apiPermission none
  * @apiVersion 0.1.0
  * @apiParam {Email}  email   email[唯一]
  * @apiParam {String} password   密码
  * @apiSuccessExample {json} Success-Response:
  *     HTTP/1.1 200 OK
  *     {
  *         token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImlzcyI6Imh0dHA6XC9cL21vYmlsZS5kZWZhcmEuY29tXC9hdXRoXC90b2tlbiIsImlhdCI6IjE0NDU0MjY0MTAiLCJleHAiOiIxNDQ1NjQyNDIxIiwibmJmIjoiMTQ0NTQyNjQyMSIsImp0aSI6Ijk3OTRjMTljYTk1NTdkNDQyYzBiMzk0ZjI2N2QzMTMxIn0.9UPMTxo3_PudxTWldsf4ag0PHq1rK8yO9e5vqdwRZLY
  *     }
  * @apiErrorExample {json} Error-Response:
  *     HTTP/1.1 400 Bad Request
  *     {
  *         "email": [
  *             "该邮箱已被他人注册"
  *         ],
  *     }
  */
 public function signup()
 {
     $validator = \Validator::make($this->request->all(), ['email' => 'required|email|unique:users', 'password' => 'required'], ['email.unique' => '该邮箱已被他人注册']);
     if ($validator->fails()) {
         return $this->errorBadRequest($validator->messages());
     }
     $email = $this->request->get('email');
     $password = $this->request->get('password');
     $user = new User();
     $user->email = $email;
     $user->password = bcrypt($password);
     $user->save();
     // 用户注册事件
     $token = \JWTAuth::fromUser($user);
     return $this->response->array(['token' => $token]);
 }
Ejemplo n.º 21
0
 public function compose(View $view)
 {
     if ($user = $this->auth->check()) {
         $view->with('jwtoken', \JWTAuth::fromUser($user));
     }
 }
Ejemplo n.º 22
0
<?php

use App\Content;
use App\Template;
Route::get('api/authenticate', ['middleware' => ['auth', 'admin'], function () {
    // this works internaly to the app
    $user = Auth::user();
    try {
        // verify the credentials and create a token for the user
        if (!($token = JWTAuth::fromUser($user))) {
            return response()->json(['error' => 'invalid_credentials'], 401);
        }
    } catch (JWTException $e) {
        // something went wrong
        return response()->json(['error' => 'could_not_create_token'], 500);
    }
    // if no errors are encountered we can return a JWT
    return response()->json(compact('token'));
}]);
// api for admin pages
Route::group(['prefix' => 'api', 'middleware' => 'jwt.auth'], function () {
    Route::get('contents', 'ContentsController@index');
    Route::get('categories', 'CategoriesController@index');
    Route::get('templates', 'TemplatesController@index');
});
Ejemplo n.º 23
0
 protected function putAsUser($url, $data, $user = null)
 {
     if (!$user) {
         $user = factory(User::class)->create();
     }
     return $this->put($url, $data, ['Authorization' => 'Bearer ' . JWTAuth::fromUser($user)]);
 }
Ejemplo n.º 24
0
 /**
  * Generate a new token for an authenticated user
  *
  * @return \Illuminate\Http\Response
  * @throws InvalidCredentialsException
  */
 public function token()
 {
     if (!($token = \JWTAuth::fromUser(\Auth::user()))) {
         throw new \App\Exceptions\InvalidCredentialsException();
     }
     return $this->toJSONResponse(['access_token' => $token, 'token_type' => 'bearer', 'expires_in' => \Config::get('jwt.ttl', '60') * 60]);
 }
Ejemplo n.º 25
0
 /**
  * Make a success response.
  *
  * @param \App\User $user
  * @return \Illuminate\Http\JsonResponse
  */
 protected function respondCreated(User $user)
 {
     return json()->setMeta(['token' => \JWTAuth::fromUser($user)])->created();
 }
Ejemplo n.º 26
0
    //var_dump($sql);
});
Route::get('/hello', function () {
    return '<h1>12</h1>';
});
Route::get('/', function () {
    return View::make('front.index');
});
//Admin routes
Route::group(array('prefix' => 'admin', 'namespace' => 'App\\Http\\Admin\\Controllers'), function () {
    Route::get('/', array('uses' => 'AdminController@index'));
});
Route::get('/generator', array('uses' => 'GeneratorController@index'));
Route::get('/createtoken', function () {
    $customer = Customer::whereEmail('*****@*****.**')->first();
    $token = JWTAuth::fromUser($customer);
    return Response::json($token);
});
Route::get('/testtoken', function () {
    $headers1 = Request::header("custom");
    JWTAuth::setRequest(Request::instance());
    $headers2 = JWTAuth::getRequest()->header();
    $token = JWTAuth::getToken();
    return Response::json(JWTAuth::toUser($token));
});
Route::get('/testpost', function () {
    $param = \Illuminate\Support\Facades\Input::all();
    $name = $param->name;
    return \Symfony\Component\HttpFoundation\Response::json($param);
});
//Front routes