我是使用Json Web Tokens的新手,最近为一个项目实施了Angular Authorization教程,该教程非常适合我的授权需求。
https://devdactic.com/restful-api-user-authentication-1/
现在我想在客户端解码JWT并在oder中提取用户_id以将其用作其他API调用的唯一ID,但我不知道如何做到这一点。
有没有人有一个很好的例子来拉动和使用角度为JWT的信息?
这是我的身份验证服务:
override func draw(_ rect: CGRect) {
let aPath = UIBezierPath()
aPath.move(to: CGPoint(x:20, y:50))
aPath.addLine(to: CGPoint(x:300, y:50))
//Keep using the method addLineToPoint until you get to the one where about to close the path
aPath.close()
//If you want to stroke it with a red color
UIColor.red.set()
aPath.stroke()
//If you want to fill it as well
aPath.fill()
}
我的目标是添加一个解析令牌的函数,让我拉一个或多个参数。
答案 0 :(得分:0)
JWT(Learn JSON Web Tokens)允许对其包含的数据进行签名和/或加密。鉴于您提到用于身份验证的JWT,几乎可以肯定您收到的令牌只是签名。 这个假设的前提是,如果它没有签名,你就不能信任其中的信息,因此使用它进行身份验证没有任何意义,加密的令牌也没有广泛使用。
此外,在HTTP环境中使用时,表示令牌的推荐方法是base64url编码令牌的各个部分,包括数据有效负载;这意味着通过应用必要的base64url解码然后将结果解释为JSON,可以轻松实现对数据的访问。但是,为了信任该数据,您必须验证签名并进行适用于您的用例的任何其他验证。
您可以查看jwt.io库部分,以获取在Javascript中实现并支持使用JWT的库列表。
例如,您可以查看Auth0 angular-jwt
库并查看example on how to decode a token。
最后,您提到要拉取用户标识符以便在其他调用中使用它;如果其他呼叫根据收到的似乎不安全的用户标识符做出敏感决定。