Ошибка аутентификации пирамиды с Persona / Browserid
Я хочу сделать аутентификацию пирамиды в своем приложении с идентификатором персоны или браузера, проблема в том, что при использовании нас обоих я вижу ошибку.
Консоль выдает мне это, когда я использую персона:
Import error: No module named pyramid_persona
и когда я использую идентификатор браузера не выдает меня модуль по имени browserid
Это мой код:
ФАЙЛ МОЙ ВИД
from pyramid.config import Configurator
from pyramid.response import Response
from pyramid.security import authenticated_userid
#from waitress import serve
from pyramid.config import Configurator
from pyramid.response import Response
from pyramid.security import authenticated_userid
from pyramid.exceptions import Forbidden
def hello_world(request):
userid = authenticated_userid(request)
if userid is None:
raise Forbidden()
return Response('Hello %s!' % (userid,))
Мой начальный файл
from pyramid.config import Configurator
from resources import Root
import views
import pyramid_jinja2
import os
here = os.path.dirname(os.path.abspath(__file__))
settings={
'persona.secret': 'some secret',
'persona.audiences': 'http://localhost:8080'
}
settings['mako.directories'] = os.path.join(here, 'templates')
__here__ = os.path.dirname(os.path.abspath(__file__))
def make_app():
""" This function returns a Pyramid WSGI application.
"""
settings = {}
settings['mako.directories'] = os.path.join(__here__, 'templates')
config = Configurator(root_factory=Root, settings=settings)
config.include('pyramid_persona')////////////////////////THE ERROR AND TROUBLEMAKER
config.add_renderer('.jinja2', pyramid_jinja2.Jinja2Renderer)
config.add_view(views.my_view,
context=Root,
renderer='zodiac1.mako')
#config.add_route( "home", "/home")
#config.add_view(views.home_view, route_name="home", renderer="zodiac1.mako" )
config.add_static_view(name='static',
path=os.path.join(__here__, 'static'))
# config.add_route('zodiac', '/zodiac')
# config.add_view(views.home_view, route_name='zodiac', #renderer='main.mako')
#config.add_route('zodiac1', '/zodiac1')
#config.add_view(views.home_view, route_name='zodiac1', renderer='zodiac1.mako')
config.add_route('zodiac2', '/zodiac2')
config.add_view(views.zodiac2_view, route_name='zodiac2', renderer='zodiac2.mako')
config.add_route('zodiac3', '/zodiac3')
config.add_view(views.guestbook, route_name='zodiac3', renderer='zodiac3.mako')
config.add_route('hello', '/hello')
config.add_view(views.guestbook, route_name='zodiac3', renderer='zodiac3.mako')
return config.make_wsgi_app()
application = make_app()
Пожалуйста, скажите мне, что я делаю неправильно, я уверен, что мне не понравилось, как я могу импортировать config.include('pyramid_persona')
Спасибо
1 ответ
Из этой ошибки:
Import error: No module named pyramid_persona
Вы можете сказать, что Python не может найти pyramid_persona
модуль. Возможно, потому что его не установлено. Вы должны установить его с pip install pyramid_persona
,
Вам также нужно будет установить pyramid_whoauth
чтобы получить поддержку BrowserID.
Это может немного усложнить соединение всех частей, поэтому я рекомендую прочитать эту замечательную рецензию Райана Келли (которая работает в Mozilla), которая показывает, как все соединяется.