PHP-JWT 라이브러리를 사용하여 Auth0 웹 응용 프로그램 만들기

5186 단어 php-jwtPHPJWTAuth0

우선, Auth0 무료 등록을 실시해, Application를 작성한다(이 기사에서는 hasami.jp.auth0.com)






로그인 (authorization-code-flow)



ㅡㅡㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ 기주 b. 이오 / 오에 d-이런 ct-1-0. 그럼. html

AUTHORIZE 엔드포인트에 GET를 요청하여 로그인 화면으로 전환



htps // // th0. 코 m / 드 cs / 아피 / 아테 텐치 카치 온 # 아테 조리 자치 온 코 - f w

GET " https://hasami.jp.auth0.com/authorize?client_id=DJjstTQAtZsX2mF1WucvC0925YTrNDol&response_type=code&scope=openid+email+profile&redirect_uri=https%3A%2F%2Fmail



(이것은 로그인 버튼의 링크가 된다)
  • response_type=code
  • client_id = DJjstTQAtZsX2mF1WucvC0925YTrNDol (Auth0의 Applications 설정에서 얻을 수 있습니다)
  • scope = openid profile email
  • redirect_uri = htps : // 마이 l. 가위. 우 k / 굵은 ck /

  • htps : // 기주 b. 이 m/후지오우x/ぉ긴-아우 th0-php/bぉb/마s r/도쿠멘 t-로오 t/그리고 x. HTML

    로그인 화면에서 성공적으로 로그인할 때 얻은 콜백 화면에 부여되는 GET 파라미터(code)를 토큰으로 변환



    htps // // th0. 코 m / 드 cs / 아피 / 아테 텐치 카치 온 # 아테 조리 자치 온 코 - f f w45
    ㅡㅡㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ 기주 b. 이오 / 오에 d-이런 ct-1-0. 그럼. html #과 켄레쿠 st

    POST " htps : // 가위. kr. th0. 코 m / 오 th / 토켄 "


  • client_id
  • client_secret
  • grant_type=authorization_code
  • code = 콜백 페이지(/callback/)의 GET 파라미터
  • redirect_uri = authorize로 던진 것과 같은 것을 지정한다.

  • htps : // 마이 l. 가위. 우 k / 굵은 ck /

    PHP-JWT 라이브러리에서 Auth0의 유니버설 로그인 화면에서 반환하여 얻은 ID 토큰을 확인 (디코딩)합니다.



    Auth0이 공개하고 있는 PHP-SDK는 PHP7이 아니면 안 된다. ( htps : // 기주 b. 코 m/후지오우x/ぉ긴-아우 th0-php/bぉb/마s테 r/php인 cぅ로_파th/푼c치온 s. php )
    PHP-JWT(firebase)이면 PHP5에서 8까지 대응하고 있다!
    설치는
    composer require firebase/php-jwt
    

    디코딩에 필요한 PEM 키 ($ publicKey)는 테넌트 URL/pem에서 얻을 수 있습니다 (htps // // th0. 코 m / 두 cs / ぃ b 라 리 s / 아 th0-php
    use Firebase\JWT\JWT;
    require_once("vendor/autoload.php");
    try{
        $publicKey = file_get_contents("/usr/share/php/rs256.pem");
        #$decoded_ac = JWT::decode($token["access_token"], $publicKey, array('RS256'));
        //Auth0では、AUTHORIZEエンドポイントにaudienceを指定しなかったら(初期状態)JWT形式ではない(opaque)アクセストークンが返ってくるのでデコードしないこと
        //https://auth0.com/docs/tokens/access-tokens#opaque-access-tokens
        //https://auth0.com/docs/tokens/access-tokens#jwt-access-tokens
        $decoded_id = JWT::decode($token["id_token"], $publicKey, array('RS256'));
    }catch(Exception $e){
        //検証できなければログイン失敗
    }
    

    htps : // 가위. jp. th0. 코m/㎺m)

    좋은 웹페이지 즐겨찾기