/** * 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); }
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()); }
/** * @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; }
/** * @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; }
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'); }
/** * 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)); }
private function _createToken($user) { $token = JWTAuth::fromUser($user); JWTAuth::setToken($token); return $token; }
/** * @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; }
/** * 昵称 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', '', '操作失败')); }
protected function login($user_id = 1) { $user = User::find($user_id); $this->token = JWTAuth::fromUser($user); JWTAuth::setToken($this->token); Auth::login($user); }
/** * 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); }
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);
/** *忘记密码 检查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'), '验证成功'); }
<?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'); });
/** * @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]); }
public function compose(View $view) { if ($user = $this->auth->check()) { $view->with('jwtoken', \JWTAuth::fromUser($user)); } }
<?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'); });
protected function putAsUser($url, $data, $user = null) { if (!$user) { $user = factory(User::class)->create(); } return $this->put($url, $data, ['Authorization' => 'Bearer ' . JWTAuth::fromUser($user)]); }
/** * 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]); }
/** * 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(); }
//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