OAuth(开放授权)是客户端应用程序代表用户访问受保护资源的规范。它是作为用户将登录凭据分发给第三方应用程序的替代方案而开发的。
我正在尝试连接到 Azure Web 应用程序,一旦检查网络配置正确(我能够连接到不安全的资源),我就会陷入“Active Directory Oauth&...
我们目前正在开发电子邮件跟踪应用程序,我们的目标是将其与 Salesforce 集成。但是,我们遇到了一个问题,即我们收到错误消息...
我想从 Google 用户那里获取电子邮件地址。为此,我使用以下依赖项: org.springframework.boot 我想从 Google 用户那里获取电子邮件地址。为此,我使用此依赖项: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-oauth2-client</artifactId> <version>3.0.4</version> </dependency> 登录后,用户被重定向到此控制器: @Controller public class OAuthController { @GetMapping("/google") public ResponseEntity<String> google() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication instanceof OAuth2AuthenticationToken) { OAuth2User user = (OAuth2User) authentication.getPrincipal(); String email = user.getAttribute("email"); System.out.println(email); } else { System.out.println("No Email"); } return ResponseEntity.ok("Hello"); } 但是,我总是进入 else 语句。这是authentication的回归: 这是我的安全配置: @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf().disable(); http.sessionManagement().sessionAuthenticationStrategy(sessionAuthenticationStrategy()); http.authorizeHttpRequests(auth -> auth .requestMatchers("/api/welcome").authenticated() .anyRequest().permitAll() ); http.httpBasic(); http.logout().permitAll(); http.addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class); http.oauth2Login(Customizer.withDefaults()); return http.build(); } 在 Google Cloud 的 OAuth 同意屏幕中,我添加了我的电子邮件地址作为测试用户,并添加了范围 .../auth/userinfo.email 和 .../auth/userinfo.profile。我的 application.yml 如下所示: spring: security: oauth2: client: registration: google: client-id: <my-client-id> client-secret: <my-client-secret> redirect-uri: http://localhost:8080/google scope: - email - profile 登录时,Google 会突出显示电子邮件地址将被共享。参见: 那么为什么我看不到电子邮件地址? OAuth2User实际上应该是OidcUser,它延伸了OAuth2User和IdTokenClaimAccessor。这意味着您应该能够执行以下操作: @Controller public class OAuthController { @GetMapping("/google") public ResponseEntity<String> google() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if ( authentication instanceof OAuth2AuthenticationToken oauth && oauth.getPrincipal() instanceof OidcUser oidcUser) { System.out.println(oidcUser.getEmail()); } else { System.out.println("No Email"); } return ResponseEntity.ok("Hello"); } }
我正在研究 JWT 访问令牌 (AC) 和轮换刷新令牌 (RT) - 这意味着对于每个更新 RT 请求,应用程序都会生成一对新的 RT 和 AC 令牌。 我看到一些博客、帖子提到...
使用自定义提供程序进行身份验证时,NextAuth 给出错误 OAUTH_CALLBACK_ERROR invalid_client
我正在尝试使用 NextAuth 通过自定义 oauth2 提供程序 (Whoop) 进行身份验证,但在 whoop 服务器上完成登录并且我被重定向回我的应用程序后,NextAuth 会抛出
“API 处理程序不应返回值,接收到的对象。”登录时下一个 JS 13.4
我收到此错误是因为我尝试在 nextJS 中通过 github 登录 /app/api/register/route.ts 从“bcrypt”导入bcrypt; 从“@/app/libs/prismadb”导入 prisma; 小鬼...
通过基于 API 的方法将 OAuth 令牌从后端传输到前端的最佳方式是什么?
这是我的步骤: 我从前端将用户重定向到 API 的端点,然后将他们重定向到相应的 Google/Facebook/Github 登录页面。 用户登录社交媒体后...
使用 SubtleCrypto(或其他浏览器 API)签署 Google JWT
我目前正在编写一个 Chrome 扩展程序,它将通过服务帐户从 Google OAuth 获取访问令牌。我基本上已经准备好了一切,除了我坚持签署 JWT。我有厕所...
Keycloak + SPA 作为客户端(Vue)+ Spring Cloud Gateway 作为资源服务器 + Spring Boot 微服务
我希望我的项目像这样工作: 当我通过网关从微服务请求一些数据时,除了 Vue(axios) 返回 401 错误之外,一切都很好。 带有“Bearer”的授权令牌设置为...
Spring Boot - OAuth2 与模拟授权服务器?
我很难思考如何让这个特定的设置发挥作用。我正在将我的身份验证服务器 (ghcr.io/navikt/mock-oauth2-server) 作为与我的 api 服务器分开的容器运行 (
什么时候(如果有的话)可以将 OAuth 客户端机密放入源代码中?
我正在浏览 GitHub CLI 的源代码,我惊讶地发现他们的客户端密钥是这样存储的: 变量( // “GitHub CLI”OAuth 应用程序 oauthClientID = &q...
我已在 vercel 中部署了 next.js 应用程序,并使用 Next-auth 进行身份验证。在我的应用程序中,用户可以使用 google OAuth 登录,并且它在本地完美运行,但在生产中用户不是...
我知道关于 OAuth1 与 OAuth2 的争论正在进行中,Google 似乎已经站在 v2 一边,并弃用了他们在这里托管的超级有用的在线测试工具...... https://oauth。
你可以在python的authlib中使用HMAC-SHA256签名吗?
authlib文档讨论了如何在服务器端处理HMAC-SHA256签名方法,但似乎没有任何关于如何使用这种签名对请求进行签名的内容。 下面...
我对基于应用程序的环境中的 OIDC 最佳实践有疑问。 我发现的大多数指南都在应用程序作为将执行...的客户端的上下文中解释了这样的设置...
使用 Laravel 和 Guzzle 包将 Web API 发送到 Spotify 时出现问题
我正在尝试使用 Web API 与 Spotify 进行通信。 情况是这样的。为了从 Spotify 检索任何信息,首先我需要获得 Spotify 的授权。为此,我需要发送帖子
我正在尝试获取不记名令牌: 公共覆盖异步任务 Post(字符串路径,HttpContent内容){ var编码的ConsumerKey = System.Uri.EscapeDataString(“1111111111111”); ...
带有 httpOnly cookie 的访问令牌是否需要与刷新令牌一起使用?
我正在使用 Next.js 应用程序中与 httpOnly cookie 一起存储的访问令牌来验证用户,我想知道在这种情况下是否真的需要刷新令牌?据我所知,刷新令牌用于重新发出新的
Google API OAuth 2 登录新 OAuth 2 客户端出现问题
我正在尝试制作一个与 google API(特别是 Google Classroom API)交互的不和谐机器人,因此我从 google 控制台创建了一个新项目并创建了一个新的 OAuth 客户端...
我在 Google Cloud 控制台中将应用程序的状态更改为“生产中”,我需要再次生成 OAuth 2.0 客户端 ID 吗?
我最初将应用程序配置为测试并生成 OAuth 2.0 客户端 ID。由于此问题,刷新令牌每 7 天就会过期。我目前将应用程序的状态更改为“In