Laravel 5自定义数据库会话?

时间:2016-02-01 21:23:25

标签: php mysql session laravel-5 laravel-5.1

我是Laravel的新手(使用5.1)。我有我的整个数据库模式(MySQL 5.5)图表并已开始实现它。问题是,我需要让Laravel使用我的会话表。在进行新的迁移以使表更符合Laravel的预期之后,我有了这个表:

+---------------+---------------------------------------+------+-----+---------+----------------+
| Field         | Type                                  | Null | Key | Default | Extra          |
+---------------+---------------------------------------+------+-----+---------+----------------+
| id            | bigint(20)                            | NO   | PRI | NULL    | auto_increment |
| id_hash       | varchar(255)                          | NO   | UNI | NULL    |                |
| user_id       | bigint(20) unsigned                   | NO   |     | 0       |                |
| created_at    | int(10) unsigned                      | NO   |     | 0       |                |
| updated_at    | int(10) unsigned                      | NO   |     | 0       |                |
| expires_at    | int(10) unsigned                      | NO   |     | 0       |                |
| last_activity | int(10) unsigned                      | NO   |     | 0       |                |
| platform      | enum('d','p','t','b','a','i','w','k') | NO   |     | d       |                |
| ip_address    | varchar(40)                           | NO   |     | 0.0.0.0 |                |
| payload       | text                                  | NO   |     | NULL    |                |
| user_agent    | text                                  | NO   |     | NULL    |                |
+---------------+---------------------------------------+------+-----+---------+----------------+

我需要做的主要事情是将id作为自动递增的整数(因为我的Session模型与其他模型有关系)并使用id_hash作为公开标识字符串(我还计划将id_hash剪切回64) ,我认为是有效载荷中的标记。

在会话创建时,将设置id_hash,platform,ip_address和user_agent,永远不会再次更改。身份验证后,将填充user_id,然后在注销时清除。

我可以按原样保持有效负载处理。

这只是创建一个实现SessionHandlerInterface的自定义类的问题吗?还有什么需要用来处理我在会话文档中不明显的额外字段?

0 个答案:

没有答案