我是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的自定义类的问题吗?还有什么需要用来处理我在会话文档中不明显的额外字段?