Laravel API 如何使用 Session

没有弄过 Laravel 4.2 的 Api。

现在使用了 https://github.com/dingo/api 框架。

我说一下我的土鳖方法。

专门弄一个接口,可以获取到 Session ID。

然后每次的 Api 都 post 这个 sid (Session ID)

然后每个 Controller 都 set 一下 Session ID。

class ApiBaseController extends Controller
{

    use ControllerTrait;
    use CommanderTrait;

    public function __construct()
    {
        Session::setId(Input::only('session_id'));
    }
}

大家有更好的方法吗?

你们是如何解决的?

写文字大部分时候是因为我希望能帮助到你,小部分时候是想做总结或做记录。我的微信是 lijinma,希望和你交朋友。 以下是我的公众账号,会分享我的学习和成长。
lijinma
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 12
Summer

什么样的应用场景需要保存 session 呢?

5年前 评论
Summer

把验证码存到 Cache, Cache key 是手机号码, 设置过期时间为 30 分钟, 把手机号码存到数据库里作为后续跟踪.

CREATE TABLE `mobiles` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `mobile` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `is_verified` tinyint(1) NOT NULL DEFAULT '0',
  `type` enum('register','reset') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'register',
  `try_count` int(11) NOT NULL DEFAULT '0',
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`),
  KEY `mobiles_mobile_index` (`mobile`),
  KEY `mobiles_is_verified_index` (`is_verified`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
5年前 评论
Summer

Oauth 2.0 API 的 Token 就可以理解为 Session 的标识.

5年前 评论

没有session,请问我想保存图片验证码怎么弄呢

3年前 评论
lijinma

@tangzwgo 使用 token 呗,就是未登录也有 token 的。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!