Exemplo n.º 1
0
    def testRefreshSuccess(self):
        # (1) refresh
        resp = self._request(token=self.primary_user_refresh_token)

        # (2) status code 200
        self.assertEqual(resp.status_code, 200)

        # (3) response data
        data = resp.json

        self.assertIn('accessToken', data)

        access_token = data['accessToken']

        self.assertIsInstance(access_token, str)

        self.assertRegex(data['accessToken'], self.token_regex)

        # (4) 데이터베이스 확인
        access_token_obj = AccessTokenModel.objects(
            owner=self.primary_user).first()
        self.assertTrue(access_token_obj)
        self.assertEqual(
            jwt.decode(access_token, self.app.secret_key, 'HS256')['identity'],
            str(access_token_obj.identity))
Exemplo n.º 2
0
    def wrapper(*args, **kwargs):
        token = AccessTokenModel.objects(identity=UUID(get_jwt_identity())).first()
        if not token or not isinstance(token.owner, AdminModel):
            abort(403)

        g.user = token.owner
        return fn(*args, **kwargs)
Exemplo n.º 3
0
 def get(self):
     """
     로그인 여부 체크
     """
     try:
         return Response(
             '', 200 if AccessTokenModel.objects(
                 identity=UUID(get_jwt_identity())) else 204)
     except ValueError:
         abort(422)
Exemplo n.º 4
0
    def testAuthSuccessWithSignup(self):
        # (1) 로그인
        resp = self._request()

        # (2) status code 200
        self.assertEqual(resp.status_code, 200)

        # (3) response data
        data = resp.json

        self.assertIn('accessToken', data)
        self.assertIn('refreshToken', data)

        access_token = data['accessToken']
        refresh_token = data['refreshToken']

        self.assertIsInstance(access_token, str)
        self.assertIsInstance(refresh_token, str)

        self.assertRegex(data['accessToken'], self.token_regex)
        self.assertRegex(data['refreshToken'], self.token_regex)

        # (4) 데이터베이스 확인
        user = AccountModel.objects(id=self.fb_id).first()

        access_token_obj = AccessTokenModel.objects(owner=user).first()
        self.assertTrue(access_token_obj)
        self.assertEqual(
            jwt.decode(access_token, self.app.secret_key, 'HS256')['identity'],
            str(access_token_obj.identity))

        refresh_token_obj = RefreshTokenModel.objects(owner=user).first()
        self.assertTrue(refresh_token_obj)
        self.assertEqual(
            jwt.decode(refresh_token, self.app.secret_key,
                       'HS256')['identity'], str(refresh_token_obj.identity))