首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cartalyst Sentry:无法更改cookie名称,总是默认为PHPSESSID

Cartalyst Sentry:无法更改cookie名称,总是默认为PHPSESSID
EN

Stack Overflow用户
提问于 2013-08-15 08:07:57
回答 1查看 687关注 0票数 0

我正在使用下面的代码,它似乎运行良好,但我似乎无法更改cookie名称。它总是默认为PHPSESSID,有人知道我哪里出错了吗?

谢谢

代码语言:javascript
复制
//Enable composer based autoloading
require './vendor/autoload.php';

class_alias('Cartalyst\Sentry\Facades\Native\Sentry', 'Sentry');

$hasher = new Cartalyst\Sentry\Hashing\NativeHasher; // There are other hashers available, take your pick

$userProvider = new Cartalyst\Sentry\Users\Eloquent\Provider($hasher);

$groupProvider = new Cartalyst\Sentry\Groups\Eloquent\Provider;

$throttleProvider = new Cartalyst\Sentry\Throttling\Eloquent\Provider($userProvider);

$session = new Cartalyst\Sentry\Sessions\NativeSession;

// Note, all of the options below are, optional!
$options = array(
    'name'     => 'cartalyst_sentry', // Default "cartalyst_sentry"
    'time'     => null, // Default 300 seconds from now
    'domain'   => null, // Default ""
    'path'     => null, // Default "/"
    'secure'   => null, // Default "false"
    'httpOnly' => null, // Default "false"
);

$cookie = new Cartalyst\Sentry\Cookies\NativeCookie($options);

$sentry = new Sentry(
    $userProvider,
    $groupProvider,
    $throttleProvider,
    $session,
    $cookie
);

// Setup our database
$dsn      = 'mysql:dbname=database;host=localhost';
$user     = 'root';
$password = 'password';
$sentry::setupDatabaseResolver(new PDO($dsn, $user, $password));

try
{
    // Set login credentials
    $credentials = array(
        'email'    => 'email@gmail.com',
        'password' => 'password',
    );

    // Try to authenticate the user
    $user = $sentry::authenticate($credentials, false);
}
catch (Cartalyst\Sentry\Users\LoginRequiredException $e)
{
    echo 'Login field is required.';
}
catch (Cartalyst\Sentry\Users\PasswordRequiredException $e)
{
    echo 'Password field is required.';
}
catch (Cartalyst\Sentry\Users\WrongPasswordException $e)
{
    echo 'Wrong password, try again.';
}
catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
{
    echo 'User was not found.';
}
catch (Cartalyst\Sentry\Users\UserNotActivatedException $e)
{
    echo 'User is not activated.';
}

// The following is only required if throttle is enabled
catch (Cartalyst\Sentry\Throttling\UserSuspendedException $e)
{
    echo 'User is suspended.';
}
catch (Cartalyst\Sentry\Throttling\UserBannedException $e)
{
    echo 'User is banned.';
}

if ($sentry::check())
{
    echo 'User logged in.';
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-15 08:38:06

Cartalyst\Sentry\ session \NativeSession没有方法来更改会话的cookie名称(至少如果这是正确的类:https://github.com/cartalyst/sentry/blob/master/src/Cartalyst/Sentry/Sessions/NativeSession.php)。

您可以通过在会话开始之前调用session_name('cookie_name_here')来设置自己。最简单的方法是在<?php之后。如果它在那里有效的话。

文档

  • http://www.php.net/manual/en/function.session-name.php
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18248614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档