>  기사  >  웹 프론트엔드  >  oAuth 인증 및 승인

oAuth 인증 및 승인

巴扎黑
巴扎黑원래의
2017-07-20 14:49:491864검색

1. OAuth 프로토콜이란 무엇입니까

OAuth(개방 인증)는 개방형 표준입니다.

사용자 인증을 전제로 제3자 웹사이트가 사용자가 서비스 제공업체에 저장한 다양한 정보에 접근할 수 있도록 허용합니다.

그리고 이 인증은 사용자에게 제3자 웹사이트에 사용자 이름과 비밀번호를 제공하도록 요구하지 않습니다.

OAuth를 사용하면 사용자가 제3자 웹사이트에 토큰을 제공할 수 있습니다. 토큰은 특정 제3자 웹사이트에 해당하며 토큰은 특정 시간 내에 특정 리소스에만 액세스할 수 있습니다.

2. OAuth의 원칙 및 승인 프로세스

OAuth의 인증 및 승인 프로세스에 관여하는 세 당사자는 다음과 같습니다.

서비스 제공자: 사용자가 사용하는 서비스 제공자로서 일반적으로 메시지, 사진, 비디오, 연락처, 파일 등(예: Twitter, Sina Microwave 등).

사용자: 서비스 제공업체의 사용자

제3자: 일반적으로 서비스 제공업체에 저장된 사용자 정보에 접근하려는 웹사이트입니다.

예를 들어 사진 인쇄 서비스를 제공하는 웹사이트에서 사용자는 서비스 제공업체에 저장된 온라인 사진 앨범을 인쇄하려고 합니다.

인증 절차에 앞서 제3자는 서비스 제공자에게 제3자 서비스의 고유 식별자를 신청해야 합니다.

OAuth 인증 및 권한 부여 과정은 다음과 같습니다.

1. 사용자가 제3자 웹사이트를 방문하여 서비스 제공자에 사용자가 저장한 특정 리소스를 조작하려고 합니다.

2. 제3자 웹사이트가 서비스 제공자에게 임시 토큰을 요청합니다.

3. 서비스 제공자는 제3자 웹사이트의 신원을 확인한 후 임시 토큰을 부여합니다.

4. 제3자 웹사이트는 임시 토큰을 획득한 후 사용자 인증을 요청하기 위해 서비스 제공업체의 인증 페이지로 이동합니다. 이 과정에서 임시 토큰과 제3자 웹사이트의 반환 주소가 제공됩니다. 서비스 제공자에게 전송됩니다.

5. 사용자는 서비스 제공업체의 인증 페이지에 사용자 이름과 비밀번호를 입력하여 해당 리소스에 액세스할 수 있는 제3자 웹사이트를 인증합니다.

6. 인증이 성공적으로 완료되면 서비스 제공업체는 사용자를 제3자 웹사이트의 반송 주소로 안내합니다.

7. 제3자 웹사이트는 임시 토큰을 기반으로 서비스 제공자로부터 액세스 토큰을 얻습니다.

8. 서비스 제공자는 토큰 및 사용자 인증을 기반으로 제3자 웹사이트 액세스 토큰을 부여합니다.

9. 제3자 웹사이트는 획득한 액세스 토큰을 사용하여 서비스 제공자에 저장된 해당 사용자 리소스에 액세스합니다.

3. 현재 OAuth를 지원하는 웹사이트는 무엇인가요?

t.sina.com.cn

t.qq.com

t.sohu.com

t.163.com

www.douban.com

www.twitter.com

www.facebook. com

Google Buzz

springboot는 oauth2 프로토콜을 캡슐화합니다. 일반적으로 사용되는 두 가지 인터페이스가 있습니다.

1 토큰 가져오기

인터페이스: /oauth/token?/oauth/token?

参数: (grant_type是写死的,其它的两个自定义)

  • grant_type=password

  • username=development@cybergate-tech.com

  • password=oQd-BfT-cer-7LP

完整的样例:http://localhost:9000/oauth/token?grant_type=password&username=development@cybergate-tech.com&password=oQd-BfT-cer-7LP

返回结果样例:

{
    "access_token": "beeaa54e-8391-4de0-8ba6-ce145b3fb812",
    "token_type": "bearer",
    "refresh_token": "8129769a-d804-46c7-856a-3bacd409b650",
    "expires_in": 3599,
    "scope": "read write"
}

2. 刷新token

接口:http://localhost:9000/oauth/token?

参数:(refresh_token是根据1中的来定的.其它参数是写死的)

  • client_id=dashboard

  • client_secret=secret

  • grant_type=refresh_token

  • refresh_token=43dca105-627e-4f50-86e8-0c22c2f3abe9

样例: http://localhost:9000/oauth/token?client_id=dashboard&client_secret=secret&grant_type=refresh_token&refresh_token=43dca105-627e-4f50-86e8-0c22c2f3abe9

매개변수: (grant_type은 하드 코딩되어 있고 나머지 두 개는 사용자 정의됨)

  • grant_type=password
    🎜
  • 🎜username=development @cybergate-tech .com🎜
  • 🎜password=oQd-BfT-cer-7LP🎜
🎜전체 예:http://localhost:9000/ oauth/token?grant_type= 비밀번호&사용자 이름=development@cybergate-tech.com&password=oQd-BfT-cer-7LP🎜🎜반환 결과 예:🎜
{
    "access_token": "0135c92b-12ab-4af9-88f4-97ef85115e71",
    "token_type": "bearer",
    "refresh_token": "75d209b5-a30d-43a8-abcd-850e7fb62e76",
    "expires_in": 3599,
    "scope": "read write"
}
🎜2. 새로 고침 토큰🎜🎜인터페이스:http: //localhost:9000/oauth /token?🎜🎜매개변수: (refresh_token은 1을 기준으로 결정됩니다. 다른 매개변수는 하드 코딩되어 있습니다.)🎜
    🎜client_id=dashboard🎜
  • 🎜client_secret=secret🎜
  • 🎜grant_type=refresh_token
    🎜
  • 🎜refresh_token=43dca105-627e-4f50 -86e8-0c22c2f3abe9🎜
  • 🎜샘플: http://localhost:9000/oauth/token?client_id=dashboard&client_secret=secret&grant_type=refresh_token&refresh_token=43dca105-627e-4f50-86e8-0c22c2f3abe 9🎜🎜반환 결과🎜rr 리

위 내용은 oAuth 인증 및 승인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:최신 ES8 기능 개요다음 기사:최신 ES8 기능 개요