本文整理汇总了PHP中Cake\Network\Request::session方法的典型用法代码示例。如果您正苦于以下问题:PHP Request::session方法的具体用法?PHP Request::session怎么用?PHP Request::session使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cake\Network\Request
的用法示例。
在下文中一共展示了Request::session方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getStoredQuery
protected function getStoredQuery($path)
{
$session = $this->request->session();
if (isset($session)) {
if ($session->check('Alaxos.Filter')) {
$stored_alaxos_filter = $session->read('Alaxos.Filter');
if (isset($stored_alaxos_filter[$path])) {
return $stored_alaxos_filter[$path];
}
}
}
return null;
}
示例2: _getCredentials
/**
* Get user's credentials (username and password) from either session or request data
*
* @param Request $request Request instance
* @return array|bool
*/
protected function _getCredentials(Request $request)
{
$credentials = [];
foreach (['username', 'password'] as $field) {
if (!($credentials[$field] = $request->data($this->_config['fields'][$field]))) {
$credentials[$field] = $this->_decrypt($request->session()->read('TwoFactorAuth.credentials.' . $field));
}
if (empty($credentials[$field]) || !is_string($credentials[$field])) {
return false;
}
}
return $credentials;
}
示例3: authenticate
/**
* Authenticate callback
*
* @param Request $request Cake request object.
* @param Response $response Cake response object.
* @return bool|mixed
*/
public function authenticate(Request $request, Response $response)
{
$data = $request->session()->read(Configure::read('Users.Key.Session.social'));
if (empty($data)) {
return false;
}
$socialMail = Hash::get((array) $data->info, Configure::read('Users.Key.Data.email'));
if (!empty($socialMail)) {
$data->email = $socialMail;
$data->validated = true;
} else {
$data->email = $request->data(Configure::read('Users.Key.Data.email'));
$data->validated = false;
}
$user = $this->_findOrCreateUser($data);
return $user;
}
示例4: startup
/**
* Component startup. All security checking happens here.
*
* @param Event $event An Event instance
* @return mixed
*/
public function startup(Event $event)
{
$controller = $event->subject();
$this->session = $this->request->session();
$this->_action = $this->request->params['action'];
$this->_secureRequired($controller);
$this->_authRequired($controller);
$isPost = $this->request->is(['post', 'put']);
$isNotRequestAction = !isset($controller->request->params['requested']) || $controller->request->params['requested'] != 1;
if ($this->_action === $this->_config['blackHoleCallback']) {
return $this->blackHole($controller, 'auth');
}
if (!in_array($this->_action, (array) $this->_config['unlockedActions']) && $isPost && $isNotRequestAction) {
if ($this->_config['validatePost'] && $this->_validatePost($controller) === false) {
return $this->blackHole($controller, 'auth');
}
}
$this->generateToken($controller->request);
if ($isPost && is_array($controller->request->data)) {
unset($controller->request->data['_Token']);
}
}
示例5: _init
/**
* Initialize HybridAuth and this authenticator.
*
* @param \Cake\Network\Request $request Request instance.
* @return void
* @throws \RuntimeException Incase case of unknown error.
*/
protected function _init(Request $request)
{
if ($this->_initDone) {
return;
}
$this->_userModel = TableRegistry::get($this->_config['userModel']);
$this->_profileModel = TableRegistry::get($this->_config['profileModel']);
$request->session()->start();
$hybridConfig = Configure::read('HybridAuth');
if (empty($hybridConfig['base_url'])) {
$hybridConfig['base_url'] = Router::url(['plugin' => 'ADmad/HybridAuth', 'controller' => 'HybridAuth', 'action' => 'endpoint', 'prefix' => false], true);
}
try {
Hybrid_Auth::initialize($hybridConfig);
} catch (\Exception $e) {
if ($e->getCode() < 5) {
throw new \RuntimeException($e->getMessage());
} else {
$this->_registry->Auth->flash($e->getMessage());
Hybrid_Auth::initialize($hybridConfig);
}
}
}
示例6: getUser
/**
* Authenticates the identity contained in the cookie. Will use the
* `userModel` config, and `fields` config to find COOKIE data that is used
* to find a matching record in the model specified by `userModel`. Will return
* false if there is no cookie data, either username or password is missing,
* or if the scope conditions have not been met.
*
* @param Request $request The unused request object.
* @return mixed False on login failure. An array of User data on success.
* @throws \RuntimeException If CookieComponent is not loaded.
*/
public function getUser(Request $request)
{
if (!isset($this->_registry->Cookie) || !$this->_registry->Cookie instanceof CookieComponent) {
throw new \RuntimeException('CookieComponent is not loaded');
}
$cookieConfig = $this->_config['cookie'];
$cookieName = $this->_config['cookie']['name'];
unset($cookieConfig['name']);
$this->_registry->Cookie->configKey($cookieName, $cookieConfig);
$data = $this->_registry->Cookie->read($cookieName);
if (empty($data)) {
return false;
}
extract($this->_config['fields']);
if (empty($data[$username]) || empty($data[$password])) {
return false;
}
$user = $this->_findUser($data[$username], $data[$password]);
if ($user) {
$request->session()->write($this->_registry->Auth->sessionKey, $user);
return $user;
}
return false;
}
示例7: startup
/**
* Component startup. All security checking happens here.
*
* @param \Cake\Event\Event $event An Event instance
* @return mixed
*/
public function startup(Event $event)
{
$controller = $event->subject();
$this->session = $this->request->session();
$this->_action = $this->request->params['action'];
$hasData = !empty($this->request->data);
try {
$this->_secureRequired($controller);
$this->_authRequired($controller);
$isNotRequestAction = !isset($controller->request->params['requested']) || $controller->request->params['requested'] != 1;
if ($this->_action === $this->_config['blackHoleCallback']) {
throw new AuthSecurityException(sprintf('Action %s is defined as the blackhole callback.', $this->_action));
}
if (!in_array($this->_action, (array) $this->_config['unlockedActions']) && $hasData && $isNotRequestAction && $this->_config['validatePost']) {
$this->_validatePost($controller);
}
} catch (SecurityException $se) {
$this->blackHole($controller, $se->getType(), $se);
}
$this->generateToken($controller->request);
if ($hasData && is_array($controller->request->data)) {
unset($controller->request->data['_Token']);
}
}
示例8: setAuthenticateAttemptedThisSession
/**
* Set the authenticate attempted session flag.
*
* @param \Cake\Network\Request $request Request to get session from.
*/
private function setAuthenticateAttemptedThisSession(Request $request)
{
$session = $request->session();
$session->write('CookieTokenAuth.attempted', true);
}
示例9: testSession
/**
* Tests getting the sessions from the request
*
* @return void
*/
public function testSession()
{
$session = new Session();
$request = new Request(['session' => $session]);
$this->assertSame($session, $request->session());
$request = Request::createFromGlobals();
$this->assertEquals($session, $request->session());
}
示例10: getUser
/**
* Get a user based on information in the request.
*
* @param \Cake\Network\Request $request Request object.
* @return mixed Either false or an array of user information
* @throws \RuntimeException If the `CakeDC/Users/OAuth2.newUser` event is missing or returns empty.
*/
public function getUser(Request $request)
{
$data = $request->session()->read(Configure::read('Users.Key.Session.social'));
$requestDataEmail = $request->data('email');
if (!empty($data) && (!empty($data['email']) || !empty($requestDataEmail))) {
if (!empty($requestDataEmail)) {
$data['email'] = $requestDataEmail;
}
$user = $data;
$request->session()->delete(Configure::read('Users.Key.Session.social'));
} else {
if (empty($data) && !($rawData = $this->_authenticate($request))) {
return false;
}
if (empty($rawData)) {
$rawData = $data;
}
$provider = $this->_getProviderName($request);
$user = $this->_mapUser($provider, $rawData);
if ($user['provider'] === SocialAccountsTable::PROVIDER_TWITTER) {
$request->session()->write(Configure::read('Users.Key.Session.social'), $user);
}
}
if (!$user || !$this->config('userModel')) {
return false;
}
if (!($result = $this->_touch($user))) {
return false;
}
if ($request->session()->check(Configure::read('Users.Key.Session.social'))) {
$request->session()->delete(Configure::read('Users.Key.Session.social'));
}
return $result;
}
示例11: _init
/**
* Initialize hybrid auth
*
* @param \Cake\Network\Request $request Request instance.
* @return void
* @throws \RuntimeException Incase case of unknown error.
*/
protected function _init(Request $request)
{
$request->session()->start();
$hybridConfig = Configure::read('HybridAuth');
if (empty($hybridConfig['base_url'])) {
$hybridConfig['base_url'] = Router::url(['plugin' => 'ADmad/HybridAuth', 'controller' => 'HybridAuth', 'action' => 'endpoint'], true);
}
try {
$this->hybridAuth = new \Hybrid_Auth($hybridConfig);
} catch (\Exception $e) {
if ($e->getCode() < 5) {
throw new \RuntimeException($e->getMessage());
} else {
$this->_registry->Auth->flash($e->getMessage());
$this->hybridAuth = new \Hybrid_Auth($hybridConfig);
}
}
}
示例12: getUser
/**
* Get a user based on information in the request.
* Used by cookie-less auth for stateless clients.
*
* @param \Cake\Network\Request $request
* Request object.
* @return mixed Either false or an array of user information
*/
public function getUser(Request $request)
{
if (!isset($request->data['username']) || !isset($request->data['password'])) {
return false;
}
set_error_handler(function ($errorNumber, $errorText, $errorFile, $errorLine) {
throw new \ErrorException($errorText, 0, $errorNumber, $errorFile, $errorLine);
}, E_ALL);
$bindAccount = $this->_config['bindAccount'];
$bindPassword = $this->_config['bindPassword'];
try {
// bind with service account first
if (!empty($bindAccount)) {
$ldapBind = ldap_bind($this->ldapConnection, $bindAccount, $bindPassword);
if ($ldapBind === true) {
$filter = $this->_config['filter']($request->data['username']);
$searchResults = ldap_search($this->ldapConnection, $this->_config['baseDN'], $filter, $this->_config['return']);
$results = ldap_get_entries($this->ldapConnection, $searchResults);
$entry = ldap_first_entry($this->ldapConnection, $searchResults);
// get login user dn
$dn = ldap_get_dn($this->ldapConnection, $entry);
}
} else {
$dn = 'CN=' . $request->data['username'] . ',' . $this->_config['baseDN'];
}
// bind with login id
$ldapBind = ldap_bind($this->ldapConnection, $dn, $request->data['password']);
if ($ldapBind === true) {
return ldap_get_attributes($this->ldapConnection, $entry);
}
} catch (\ErrorException $e) {
$this->log($e->getMessage());
if (ldap_get_option($this->ldapConnection, LDAP_OPT_DIAGNOSTIC_MESSAGE, $extendedError)) {
if (!empty($extendedError)) {
foreach ($this->_config['errors'] as $error => $errorMessage) {
if (strpos($extendedError, $error) !== false) {
$messages[] = ['message' => $errorMessage, 'key' => $this->_config['flash']['key'], 'element' => $this->_config['flash']['element'], 'params' => $this->_config['flash']['params']];
}
}
}
}
}
restore_error_handler();
if (!empty($messages)) {
$request->session()->write('Flash.' . $this->_config['flash']['key'], $messages);
}
return false;
}
示例13: getUser
/**
* Get a user based on information in the request.
*
* @param \Cake\Network\Request $request Request object.
* @return mixed Either false or an array of user information
* @throws \RuntimeException If the `Muffin/OAuth2.newUser` event is missing or returns empty.
*/
public function getUser(Request $request)
{
$data = $request->session()->read(Configure::read('Users.Key.Session.social'));
if (!empty($data) && !empty($data['email'] || !empty($request->data('email')))) {
if (!empty($request->data('email'))) {
$data['email'] = $request->data('email');
}
$user = $data;
$request->session()->delete(Configure::read('Users.Key.Session.social'));
} else {
if (empty($data) && !($rawData = $this->_authenticate($request))) {
return false;
}
if (empty($rawData)) {
$rawData = $data;
}
$provider = $this->_getProviderName($request);
$user = $this->_mapUser($provider, $rawData);
}
if (!$user || !$this->config('userModel')) {
return false;
}
if (!($result = $this->_touch($user))) {
return false;
}
return $result;
}
示例14: __construct
/**
* Constructor.
*
* @param \Cake\Network\Request $request Request instance.
* @param \Cake\Network\Response $response Response instance.
* @param array $config Configuration list.
*/
public function __construct(Request $request, Response $response, array $config = [])
{
$this->_session = $request->session();
$this->config($config);
}