我正在尝试创建一个为移动应用程序提供服务的 API。我正在使用带有 Passport 的 Laravel 5.3。
流程本身就是这样。移动应用程序将为 API 提供一个 facebook 访问令牌,该令牌将用于获取有关用户的一些信息(facebook id、姓名、个人资料图片和电子邮件)。此时后端将插入(如果尚不存在)上述信息到用户表中,基本上是创建一个新用户。请注意,无论如何后端都不会登录到 facebook,因为移动应用程序已经授予了访问令牌。
之后需要发生的是后端将为移动应用程序提供一个访问令牌,该令牌将用于从 API 本身访问其他路由。这应该通过 Passport 完成。据我所知,通过 Passport 需要为每个用户创建一个新客户端,但我并不在寻找那个,因为移动应用程序是 API 将拥有的唯一“客户端”。通过 facebook 创建的用户实际上是移动应用程序的用户,而不是 API 本身。的架构oauth_clients
是:
CREATE TABLE `oauth_clients` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL,
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`secret` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`redirect` text COLLATE utf8_unicode_ci NOT NULL,
`personal_access_client` tinyint(1) NOT NULL,
`password_client` tinyint(1) NOT NULL,
`revoked` tinyint(1) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `oauth_clients_user_id_index` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
我没有以任何方式修改它,它是默认模式。
这对我的需求没有意义,我不想要一堆客户,我只想要一个客户。移动应用程序本身。
我当然可以为移动应用程序本身创建一个用户,并且 Facebook 用户将始终被分配到user_id
表格中的移动应用程序oauth_clients
,但这似乎是错误的。