我使用模拟器测试了帐户关联。我可以保留 app.config(function($stateProvider, $urlRouterProvider) {
$stateProvider.state('root', {
url: "/",
controller: {
function() {
$state.go('shop')
}
}
}).state('shop', {
url: "/shop",
controller: 'myCtrl',
templateUrl: "/shopcontent.jsp"
})
});
中的哪个字段? originalRequest -> data -> user
或userId
?
我发现它们总是在会话到期时重新生成(或者通过切换“测试状态:活动”),这使得accessToken
成为不可能。
我知道我可以使用SELECT * FROM User WHERE assistant_client_id = [something]
向accessToken
查询“真实”(?)ID,但是为每个请求执行此操作会增加额外的时间(而且助理并不完全耐心)。< / p>
假设https://www.googleapis.com/userinfo/v2/me
永远不会被其他人重复使用,我可以这样做吗?
accessToken
存储在我的accessToken
表格中。User
。accessToken
以获取可用于查询我的表格的ID(或电子邮件),并使用最新版本更新https://www.googleapis.com/userinfo/v2/me
。答案 0 :(得分:2)
在某些情况下,userId
字段和模拟器目前存在使用sessionId
的错误,但在大多数情况下,在实际设备上调用之间应该保持这种错误。
但是,如果您使用的是帐户关联,这是更好的方法。不过请注意,accessToken
不是是一个标识符。正如您所注意到的,它是标识符的临时键。 (有时候它是一个包含标识符的令牌,但不包括你的情况。)访问令牌假设具有有限的生命周期 - 通常是一小时。在其他情况下,即使在超时期限内,您也可以获得新的accessToken
。
虽然您可以放心,如果您看到相同的accessToken
两次与同一个用户通话,则您无法假设同一个用户总是会给您相同的accessToken
您的方法很好,但您还需要处理旧访问令牌的清理工作。可能会创建一个超时字段,并假设您可以在一小时后的某个时间将它们计时,或者从您的用户创建第二个哈希到最新的accessToken
并在用另一个替换时删除accessToken
之一。