我正在尝试创建一个用于处理移动应用程序的API。我正在使用护照Laravel 5.3。Laravel 5.3和护照。尝试为API创建单个客户端
流本身就是这样。移动应用程序将提供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用户将始终分配oauth_clients
表中的移动应用程序user_id
,但这只是看起来不对。
@PetterFriberg我已经为这个问题定制了答案。由于它不完全重复,但部分解释了另一个问题的解决方案。 –