Example #1
0
 /**
  * Login registered users and initiate a session. Send back the session id.
  *
  * Expects a POST. ex for JSON  {"username":"******", "password":"******"}
  *
  * @return void
  */
 public function execute()
 {
     $contentTypeHeaderValue = $this->getRequest()->getHeader('Content-Type');
     $contentType = $this->getContentType($contentTypeHeaderValue);
     $loginData = null;
     try {
         $loginData = $this->deserializerFactory->get($contentType)->deserialize($this->getRequest()->getRawBody());
     } catch (Exception $e) {
         $this->getResponse()->setHttpResponseCode($e->getCode());
         return;
     }
     if (!$loginData || $this->getRequest()->getMethod() !== \Magento\Webapi\Model\Rest\Config::HTTP_METHOD_POST) {
         $this->getResponse()->setHttpResponseCode(HttpException::HTTP_BAD_REQUEST);
         return;
     }
     $customerData = null;
     try {
         $customerData = $this->customerAccountService->authenticate($loginData['username'], $loginData['password']);
     } catch (AuthenticationException $e) {
         $this->getResponse()->setHttpResponseCode(HttpException::HTTP_UNAUTHORIZED);
         return;
     }
     $this->session->start('frontend');
     $this->session->setUserId($customerData->getId());
     $this->session->setUserType(UserIdentifier::USER_TYPE_CUSTOMER);
     $this->session->regenerateId(true);
 }
Example #2
0
 /**
  * Customer authorization
  *
  * @param   string $username
  * @param   string $password
  * @return  bool
  */
 public function login($username, $password)
 {
     try {
         $customer = $this->_customerAccountService->authenticate($username, $password);
         $this->setCustomerDataAsLoggedIn($customer);
         return true;
     } catch (\Exception $e) {
         return false;
     }
 }
 /**
  * @magentoAppArea frontend
  * @magentoDataFixture Magento/Customer/_files/customer.php
  */
 public function testCreateNewCustomerFromClone()
 {
     $email = '*****@*****.**';
     $firstName = 'Firstsave';
     $lastname = 'Lastsave';
     $existingCustId = 1;
     $existingCustomer = $this->_customerAccountService->getCustomer($existingCustId);
     $customerData = array_merge($existingCustomer->__toArray(), ['email' => $email, 'firstname' => $firstName, 'lastname' => $lastname, 'created_in' => 'Admin', 'id' => null]);
     $this->_customerBuilder->populateWithArray($customerData);
     $customerEntity = $this->_customerBuilder->create();
     $customerDetails = $this->_customerDetailsBuilder->setCustomer($customerEntity)->create();
     $customer = $this->_customerAccountService->createCustomer($customerDetails, 'aPassword');
     $this->assertNotEmpty($customer->getId());
     $this->assertEquals($email, $customer->getEmail());
     $this->assertEquals($firstName, $customer->getFirstname());
     $this->assertEquals($lastname, $customer->getLastname());
     $this->assertEquals('Admin', $customer->getCreatedIn());
     $this->_customerAccountService->authenticate($customer->getEmail(), 'aPassword', true);
 }
Example #4
0
 /**
  * {@inheritdoc}
  */
 public function createCustomerAccessToken($username, $password)
 {
     $this->validateCredentials($username, $password);
     $customerDataObject = $this->customerAccountService->authenticate($username, $password);
     return $this->tokenModelFactory->create()->createCustomerToken($customerDataObject->getId())->getToken();
 }