我正在嘗試創建一個用於處理移動應用程序的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我已經爲這個問題定製了答案。由於它不完全重複,但部分解釋了另一個問題的解決方案。 –