我有一个使用Identity 2的Web API。它似乎很好地验证了我,@available(iOS 10, *)
extension HyberFirebaseMessagingDelegate : UNUserNotificationCenterDelegate {
// Receive displayed notifications for iOS 10 devices.
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
let userInfo = notification.request.content.userInfo
print(userInfo)//print user info
}
}
extension HyberFirebaseMessagingDelegate : FIRMessagingDelegate {
// Receive data message on iOS 10 devices.
func applicationReceivedRemoteMessage(_ remoteMessage: FIRMessagingRemoteMessage) {
print("%@", remoteMessage.appData)
}
}
端点返回我反序列化到/Token
实例的内容,其内容非常类似于:
AuthTicket
然后,当我发送请求时:
AccessToken: "averylongtoken"
Expires: {2016/12/12 8:19:22 AM}
ExpiresIn: 1209599
Issued: {2016/11/28 8:19:22 AM}
TokenType: "bearer"
Username: "myusername"
和var response = await Client.GetAsync("api/appt/3/true", cancellationToken);
看起来像:
Client.DefaultRequestHeaders.Authorization
我仍然得到Bearer theSameVeryLongToken
。这可能有什么问题?可能是Web API以某种方式没有接收或正确解密承载令牌?当我在API中设置断点并检查控制器操作中的401 - Not authorized
属性时,其所有属性都为null或default,但它有一个User
,其属性也都为null或者默认情况下,其ClaimsIdentity
集合为空。
我是否需要手动设置所有声明而不是我自定义声明?我原以为Claims
至少会添加一个声明,例如用户名或ID。
答案 0 :(得分:0)
我再次查看了所有代码,不知何故丢失了将auth令牌添加到请求标头的行。在发送请求之前检查这些标题很容易证实这一点,并且很容易修复。