在前端,使用React和Google登录按钮,用户登录我的应用程序。 Google会将用户的JWT返回到前端的回调网址,并进行编码。然后,我将每个请求的JWT交付给Rails API,并希望rails API解码并验证此JWT,如果验证成功,则返回API端点应该提供的数据。
我目前正在使用此代码:
def google_public_key
x509 = OpenSSL::X509::Certificate.new ENV["GOOGLE_CERT"]
x509.public_key
end
env var的描述如下:https://gist.github.com/Connorelsea/c6b91a4b4b6889294fd4e2fcacb06564
我收到此错误:OpenSSL::X509::CertificateError (nested asn1 error)
如果我不验证,我可以阅读JWT的内容。从JWT网站上可以解码,但也不能验证。
答案 0 :(得分:0)
有同样的问题并通过将public_key设置为Pkey对象而不是构造函数中的字符串来解决,请尝试:
def google_public_key
x509 = OpenSSL::X509::Certificate.new
x509.public_key = OpenSSL::PKey::RSA.new ENV["GOOGLE_CERT"]
end