Spring Social 을 이용 하여 위 챗 권한 수여 로그 인 을 쉽게 해결 하 는 방법 예시
6324 단어 SpringSocial작은 편지권한 을 부여 하 다로그 인
스 캔 로그 인 은 PC 등 크로스 플랫폼 응용 에 사용 할 수 있 고 대중 플랫폼 은 반드시 위 챗 app 에서 사용 해 야 하 며 대중 번호 에 관심 을 가 져 야 합 니 다.
다음은 공공 플랫폼 을 예 로 들 어 Spring Social 을 바탕 으로 위 챗 사용자 의 권한 수 여 를 실현 하고 사용자 정 보 를 얻 는 방법 을 소개 합 니 다.(위 챗 오픈 플랫폼 과 유사)
첫 번 째 단계:위 챗 공식 플랫폼 배경 에 응용 프로그램 을 등록 하고 관련 설정 을 한다.
위 챗 공식 플랫폼 배경 주소:https://mp.weixin.qq.com/
테스트 번 호 를 먼저 등록 할 수도 있다.https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
위 챗 스 캔 으로 배경 화면 에 로그 인 하면 다음 페이지 를 볼 수 있 습 니 다.
그 중의'앱 ID'와'앱 시 크 릿'은 기록 해 야 합 니 다.이따가 사용 해 야 합 니 다.
아래로 내 려 가서'웹 페이지 권한 수여 사용자 기본 정보 획득'을 찾 고'수정'을 누 르 면 테스트 서버 의 도 메 인 이름 이나 IP 를 입력 합 니 다.
페이지 수정:
두 번 째 단계:관련 코드 추가
우 리 는 서버 가 springboot 기반 이 라 고 가정 합 니 다.
1.spring-social-wechat 의존 도 증가:
Maven:
<dependency>
<groupId>com.ikasoa</groupId>
<artifactId>spring-social-wechat</artifactId>
<version>1.3.1</version>
</dependency>
아니면 Gradle:
compile 'com.ikasoa:spring-social-wechat:1.3.1'
2.설정 항목 추가application.yml:
spring:
social:
wechatmp:
app-id: [appID]
app-secret: [appsecret]
또는 application.properties:
spring.social.wechatmp.app-id=[appID]
spring.social.wechatmp.app-secret=[appsecret]
그 중에서'앱 ID'와'앱 시 크 릿'은 위 챗 공식 플랫폼 백 스테이지 에서 얻 을 수 있 습 니 다.3.응용 프로그램 수정.java
주석@EnableSocial 을 추가 하고 자동 설정 클래스(WechatMpAutoConfiguration.class)를 참조 하 십시오.
Application.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Import;
import org.springframework.social.config.annotation.EnableSocial;
import org.springframework.social.wechat.autoconfigurer.WechatMpAutoConfiguration;
@SpringBootApplication
@EnableSocial
@Import(WechatMpAutoConfiguration.class)
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
4.SignInAdapter 를 추가 하고 Provider SignInController 를 등록 합 니 다.SignInAdapter 는 위 챗 인증 이 성공 한 후의 관련 작업 을 처리 하 는 데 사 용 됩 니 다.예 를 들 어:
WechatSignInAdapter.java
import org.springframework.social.connect.Connection;
import org.springframework.social.connect.ConnectionKey;
import org.springframework.social.connect.web.SignInAdapter;
import org.springframework.social.wechat.api.User;
import org.springframework.social.wechat.api.Wechat;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.NativeWebRequest;
@Component
public class WechatSignInAdapter implements SignInAdapter {
@Override
public String signIn(String openId, Connection<?> connection, NativeWebRequest request) {
ConnectionKey key = connection.getKey();
// providerId
if ("wechatmp".equalsIgnoreCase(key.getProviderId())) {
// openId
User user = ((Wechat)connection.getApi()).userOperations().getUserProfile(openId);
// , .
System.out.println(user);
return “/success.htm”; // url
}
return “/error.htm”;
}
}
WechatSignInAdapter 를 ProviderSignInController 에 주입:
......
@Bean
public ProviderSignInController providerSignInController(ConnectionFactoryLocator connectionFactoryLocator, UsersConnectionRepository usersConnectionRepository, WechatSignInAdapter wechatSignInAdapter) {
((InMemoryUsersConnectionRepository) usersConnectionRepository).setConnectionSignUp((Connection<?> connection) -> connection.getKey().getProviderUserId());
return new ProviderSignInController(connectionFactoryLocator, usersConnectionRepository, wechatSignInAdapter);
}
......
그 중에서 InMemory Users Connection Repository 는 메모리 에 사용자 정 보 를 저장 하 는 실현(Users Connection Repository)이자 기본 적 인 실현 이다.또한 SpringSocial 은 JDBC 의 실현 을 선택 할 수 있 도록 제공 했다.STEP 3:시작 및 테스트
테스트 페이지 에 위 챗 인증 입 구 를 추가 합 니 다:
......
<form action="/signin/wechatmp" method="POST">
<button type="submit"> </button>
</form>
......
springboot 을 시작 합 니 다.위 챗 app 에서 테스트 페이지 를 열 고 테스트 버튼 을 누 르 십시오.테스트 페이지 의 도 메 인 이름 은 공공 플랫폼 배경 인'웹 페이지 권한 수여 사용자 기본 정보 획득'에 설 치 된 도 메 인 이름과 같 아야 합 니 다.
모든 것 이 잘 되면 서버 백 엔 드 에서 이 위 챗 사용자 의 상세 한 정 보 를 인쇄 합 니 다.
페이지 는"/success.htm",즉 WechatSignInAdapter.signin 에서 돌아 오 는 주소 로 이동 합 니 다.
테스트 계 정 은 먼저 위 챗 테스트 공중 번호(테스트 번호 배경 에서 QR 코드 를 스 캔 하면 주목 할 수 있 음)에 관심 을 가 져 야 합 니 다.그렇지 않 으 면'ErrorCode:10006'을 잘못 보고 할 수 있 습 니 다.
위 챗 로그 인 이 모두 완료 되 었 습 니 다.
위 챗 오픈 플랫폼 로그 인(스 캔 로그 인)에 대해 서 는 이와 유사 하 게위 챗 오픈 플랫폼배경 에서'apPID'와'appsick'을 신청 하고 위의 예 에서'wechatmp'를'wechat'로 바 꾸 면 됩 니 다.
전체 예 코드:
spring-social-wechat-sample
Spring Social 프로젝트 에 대하 여
spring-social
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.