Dan*_*boy 6 openid oauth oauth-2.0
我特别 - 我不明白如何将使用oauth进行身份验证的用户链接到我的应用程序中的特定帐户?
所以这是我的applciation中的帐户:
CREATE TABLE accounts (
id BIGINT NOT NULL AUTO_INCREMENT,
username VARCHAR(40),
email VARCHAR(256),
created DATETIME,
updated DATETIME,
PRIMARY KEY (id),
UNIQUE KEY (email),
UNIQUE KEY (username)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)
例如,使用openid有一个唯一标识该用户的唯一用户ID(uri,xri).所以我可以像这样链接到我的帐户:
CREATE TABLE openid_logins (
id BIGINT NOT NULL auto_increment,
fk_accounts_id BIGINT NOT NULL,
openid_identity TEXT NOT NULL, /*that's unique user id*/
openid_provider_url VARCHAR(255) NOT NULL, /*flickr, yahoo, live_journal*/
PRIMARY KEY (id),
INDEX (openid_identity),
FOREIGN KEY (fk_accounts_id) REFERENCES accounts(id) ON UPDATE CASCADE ON DELETE CASCADE
);
Run Code Online (Sandbox Code Playgroud)
因此,每当用户通过openid登录时 - >我可以让他的常规帐户引用fk_accounts_id.
但是当谈到oauth - AFAIK时,没有像oauth_identity_string这样的东西......而且因为oauth令牌本身可能会改变令牌,所以不能在我的应用程序中用作配置文件的唯一链接.....那么我该怎么办?如何唯一标识通过oauth登录的用户?
小智 4
您无法通过 OAuth 协议本身获取有关用户的信息,但是,通常有一个端点(您可以向该端点发出请求)来提供用户信息。例如,Google 提供了一种:收到令牌后,您可以向以下地址发出请求:
获取https://www.googleapis.com/plus/v1/people/me?access_token= {TOKEN}
这将返回一个 JSON 对象,其中包含有关用户的信息,包括唯一标识符。
| 归档时间: |
|
| 查看次数: |
529 次 |
| 最近记录: |