当我尝试通过Google OAuth 1.0对用户进行身份验证时,如果用户已经使用Google登录,则会自动询问他是否允许访问我的应用程序.我想强迫用户再次向Google提交他/她的凭据,因此他可能提供与他登录的帐户不同的帐户(FB和Twitter OAuth握手都有此选项).
另外,是否有一个我可以传递给Google的参数会让它意识到它在弹出窗口中,所以它可以更好地调整布局?同样,FB和Twitter采用弹出窗口的"所有权"并调整其大小,使其布局完美契合.他们也知道在弹出窗口中呈现,因此呈现了不同的布局.
谷歌似乎远远落后于它的API.我发现整体实现难以使用,XML是令人毛骨悚然的,充满了无用的数据,文档不完整,整个过程在它的服务之间,甚至在同一个服务中都不一致!
我们目前使用Google现已弃用的OID2服务,将用户部分验证为我们开发和维护的帐户恢复服务.我知道我们需要在2015年4月20日之前从Google迁移到新的OpenID Connect服务.迁移的一部分包括将旧的OID2哈希(我们已经存储为唯一且被认为是永久标识符)映射到可用的新sub_id值在新服务中.我们知道将openid_realm值提供给新服务将从openid_id值获取我们的OID2哈希值,以便我们可以映射到新的sub_id.由于我们强制用户每年验证其帐户恢复设置,因此我们可以强制他们在当时向Google进行身份验证.考虑到迁移的时间不到一年,到2015年4月15日将很难完成全面迁移.我们的问题是新服务中的openid_id值将为我们的领域返回旧的OID2哈希值多长时间?是否会继续关闭OID2服务?
如果您已登录多个Gmail帐户,Google会更改网址以引用您当前使用的帐户.例如:
https://mail.google.com/mail/u/0/#inbox/138d85da096d2126我的主帐户https://mail.google.com/mail/u/1/#inbox/128cfe99d055805d中的convo与另一个帐户
中的convo相比.
请注意,一个帐户/u/0在URL中有另一个帐户u/1.
我的问题是:鉴于我已使用Gmail REST API查找特定线程的ID,我该如何可靠地链接到该线程?是否有任何编程方式向Google询问用户登录的帐户,以及每个帐户属于哪个序列(0,1,2,...)?
我在我的应用程序中使用OpenID Connect,我从Google正确获得了JWT令牌,我需要使用Signature验证它.为实现此目的,我需要公钥,Google提供包含其所有公共证书的URL.
https://www.googleapis.com/oauth2/v3/certs
但它返回这个:
{
"keys": [
{
"kty": "RSA",
"alg": "RS256",
"use": "sig",
"kid": "f86c80f329b3ac69232463382fc1644167211d23",
"n": "wItpB2JpNKNgBM-xjgFbMGLYySu0SvaSA8Ag_MpqWrlWOvWvd3JQFrNKdw1nCGrGSczP6FdCRptogSEO51UB3n1h2quH-YW3NPGt0JGqXdRARJ1I1cOVq3dvrPaZhtDcEQCBAdqEmix_ngQM5vD1t8J22JO_v_JzJlTkzfYu5dPeSoXZymtgGeofdu38L1y-FlFqD09p6IP6Fxza22cv3ST3Dsw3eQ1yzGi5YuO0scTpds0jqPAslddclo22zapqB1_6qplwunpT3qAuObYR5Xn3gPseyQiwDtIk7MpEkb_AA_r4bpUGIh9-1SX3ev8urVZJ1Sg1Y_Rr-u7oQO9pdQ",
"e": "AQAB"
},
Run Code Online (Sandbox Code Playgroud)
这是什么意思 ?这里的公钥或证书在哪里?
谢谢你的帮助 !
好的,所以使用passport.js可以正常工作,而且效果很好,从我所见过的.但是,我不确定如何正确排除某些用户.如果应用程序旨在限制访问,而不是仅仅为用户提供登录方法,我如何通过passport.js限制登录?目前,用户只需访问/login并使用他们的Google帐户登录,即可访问内部.
我正在阅读Google有关OpenId Connect的文档 https://developers.google.com/accounts/docs/OAuth2Login
我没有得到的是"4.访问令牌和ID令牌的交换代码"期间redirect_uri参数的用途.
访问令牌在对HTTP Post请求本身的响应中返回,因此我没有达到redirect_uri的目的.
有人可以解释一下吗?
我正在使用Google的OpenID Connect服务来验证用户身份.我考虑拒绝所有帐户,如果该email_verified字段是错误的,但我没有看到一个真实世界的场景,有人会在此字段设置为false的情况下点击我的系统.
当您第一次登录Google时,用户的帐户会被验证,因此从第3方应用的角度来看,它们是否始终无法验证?
假设/token在交换从/auth端点获取的代码后,我从Google的OAuth2 端点获得以下响应(使用此示例OAuth Playground请求):
{
"access_token": "ya29.eQETFbFOkAs8nWHcmYXKwEi0Zz46NfsrUU_KuQLOLTwWS40y6Fb99aVzEXC0U14m61lcPMIr1hEIBA",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "1/ZagesePFconRc9yQbPxw2m1CnXZ5MNnni91GHxuHm-A",
"id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjJhODc0MjBlY2YxNGU5MzRmOWY5MDRhMDE0NzY4MTMyMDNiMzk5NGIifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwic3ViIjoiMTEwMTY5NDg0NDc0Mzg2Mjc2MzM0IiwiYXpwIjoiNDA3NDA4NzE4MTkyLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXRfaGFzaCI6ImFVQWtKRy11Nng0UlRXdUlMV3ktQ0EiLCJhdWQiOiI0MDc0MDg3MTgxOTIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJpYXQiOjE0MzIwODI4NzgsImV4cCI6MTQzMjA4NjQ3OH0.xSwhf4KvEztFFhVj4YdgKFOC8aPEoLAAZcXDWIh6YBXpfjzfnwYhaQgsmCofzOl53yirpbj5h7Om5570yzlUziP5TYNIqrA3Nyaj60-ZyXY2JMIBWYYMr3SRyhXdW0Dp71tZ5IaxMFlS8fc0MhSx55ZNrCV-3qmkTLeTTY1_4Jc"
}
Run Code Online (Sandbox Code Playgroud)
如何散列访问令牌以便将其at_hash与ID令牌的声明进行比较?
我可以在服务器上本地验证ID令牌以防止客户端修改,并且想要验证访问令牌是使用id令牌发出的那个(暗示受众和主题与ID令牌匹配).
我的团队正在将现有产品作为OpenID Connect RP(依赖方)并使用connect2id的Nimbus JOSE + JWT库.该库支持签名和加密的JWT,但只先签名,然后加密.他们有理由不支持加密然后签名,但我们担心的是我们需要与之交互的一些OP可能会加密然后签名.
我们最初的目标是Salesforce和Google.我无法从他们的文档中确定,在担任OpenID Connect Providers时,Salesforce和Google是否使用sign-then-encrypt或encrypt-then-sign.
有人能指出我为这些OP记录的页面吗?或者它是非问题,因为没有人使用加密然后签名?谢谢.
我有一个 Angular11 UI 前端,使用 Google 的 RS256 身份验证
import { SocialAuthService, GoogleLoginProvider, SocialUser } from 'angularx-social-login';providers: [{ id: GoogleLoginProvider.PROVIDER_ID, provider: new GoogleLoginProvider('my Google-Client-ID')}]当 Google 向我发回 JWT 令牌时,我会将其发送到我的 NodeJS 应用程序服务器,以便为会话建立基于 JWT 的通信,因此此 NodeJS 应用程序服务器必须验证此 JWT。根据这篇angular-university.io 文章“ Leveraging RS256 Signatures ”部分,
最好让身份验证服务器在可公开访问的 Url 中发布 JWT 验证公钥,而不是在应用程序服务器上安装公钥。
我从 Erji 的Google Identity中找到了这个 JWK(不是 JWT)链接https://www.googleapis.com/oauth2/v3/certs。这是正确的公钥吗?
google-openid ×10
google-oauth ×4
jwt ×3
google-api ×2
openid ×2
angular ×1
gmail ×1
gmail-api ×1
node.js ×1
oauth ×1
oauth-2.0 ×1
passport.js ×1
salesforce ×1