Ejemplo n.º 1
0
    def wrapper(*args, **kwargs):
        if 'oauth_token' not in session:
            return redirect(url_for('nexaas_id_oauth.signin'))

        client = get_client()
        token = kwargs['api_client'] = NexaasIDClient.from_oauth(
            TokenSerializer.deserialize(session['oauth_token']),
            client=client,
        )

        try:
            return wrapped(*args, **kwargs)

        except SignedOutException:
            try:
                token = client.refresh_token(token)
                session['oauth_token'] = TokenSerializer.serialize(token)
                kwargs['api_client'] = NexaasIDClient.from_oauth(
                    token,
                    client=client,
                )
                return wrapped(*args, **kwargs)

            except SignedOutException:
                return redirect(url_for('nexaas_id_oauth.signout'))
Ejemplo n.º 2
0
def callback():
    client = get_client()
    code = request.args.get('code')
    session['oauth_token'] = TokenSerializer.serialize(client.get_token(code))
    next_url = session.get('oauth_next_url')
    if next_url:
        del session['oauth_next_url']
    return redirect(next_url or '/')
 def test_deserialize_refresh_token(self):
     token = TokenSerializer.deserialize('access_token=access-token&'
                                         'refresh_token=refresh-token&'
                                         'expires_at=&'
                                         'scope=profile')
     self.assertEqual(token.access_token, 'access-token')
     self.assertEqual(token.refresh_token, 'refresh-token')
     self.assertIsNone(token.expires_at)
 def test_full_serialization(self):
     token = TokenSerializer.deserialize(
         'access_token=access-token&'
         'refresh_token=refresh-token&'
         'expires_at=1970-01-01+00%3A00%3A00&'
         'scope=profile')
     self.assertEqual(token.access_token, 'access-token')
     self.assertEqual(token.refresh_token, 'refresh-token')
     self.assertEqual(token.expires_at, datetime(1970, 1, 1))
 def test_serialize_expires_at(self):
     token = TokenSerializer.deserialize(
         'access_token=the-token&'
         'refresh_token=&'
         'expires_at=2100-10-10+10%3A10%3A00&'
         'scope=profile')
     self.assertEqual(token.access_token, 'the-token')
     self.assertIsNone(token.refresh_token)
     self.assertEqual(token.expires_at, datetime(2100, 10, 10, 10, 10))
 def test_serialize_refresh_token(self):
     token = self.Token('access-token', 'refresh-token', None, 'profile')
     self.assertEqual(
         set(TokenSerializer.serialize(token).split('&')),
         {
             'access_token=access-token',
             'refresh_token=refresh-token',
             'expires_at=',
             'scope=profile',
         },
     )
 def test_full_serialization(self):
     token = self.Token('access-token', 'refresh-token',
                        datetime(1970, 1, 1), 'profile')
     self.assertEqual(
         set(TokenSerializer.serialize(token).split('&')),
         {
             'access_token=access-token',
             'refresh_token=refresh-token',
             'expires_at=1970-01-01+00%3A00%3A00',
             'scope=profile',
         },
     )
 def test_serialize_expires_at(self):
     token = self.Token('the-token', None, datetime(2100, 10, 10, 10, 10),
                        'profile')
     self.assertEqual(
         set(TokenSerializer.serialize(token).split('&')),
         {
             'access_token=the-token',
             'refresh_token=',
             'expires_at=2100-10-10+10%3A10%3A00',
             'scope=profile',
         },
     )
Ejemplo n.º 9
0
 def signin(self):
     client = self.client
     session = client.session
     session['oauth_token'] = TokenSerializer.serialize(self.token)
     session.save()
 def test_deserialize_empty(self):
     token = TokenSerializer.deserialize(
         'access_token=tk1&refresh_token=&expires_at=&scope=profile')
     self.assertEqual(token.access_token, 'tk1')
     self.assertIsNone(token.refresh_token)
     self.assertIsNone(token.expires_at)
Ejemplo n.º 11
0
def get_api_client(request, session):
    return NexaasIDClient.from_oauth(
        TokenSerializer.deserialize(session['oauth_token']),
        client=views.get_client(request),
    )