I'd not heard of Zansibar, but just found this gem. Looks worthy of a play:
https://github.com/jaredonline/google-authenticator

--
Ian Moss
alter.is | ruby & product consultancy services.
http://www.linkedin.com/in/alteris 


----- Original message -----
From: Darren Jones <daz4...@gmail.com>
To: nwrug-members@googlegroups.com
Subject: Re: [NWRUG] Alternatives to Devise
Date: Friday, 23 August 2024 10:41

Thanks Frances. That’s really useful as well. 

@Tekin - when you say those generators are available now … what’s the best way 
to get them into a rails 7 app?

On Thu, 22 Aug 2024 at 22:35, Francis Fish <francis.f...@gmail.com> wrote:
> I used this as a basis cos current gig said no Devise 
> 
> https://dev.to/stevepolitodesign/rails-authentication-from-scratch-38m2
> 
> This was useful too
> 
> https://blog.corsego.com/omniauth-without-devise
> 
> It's actually pretty easy. I can't quite work out what the omniauth gem does 
> (injects something into Rack, I think) get methods get transformed into posts 
> that go out to the provider. That I did not like, cos rails routes doesn't 
> tell you anything useful and magic spells bad.
> 
> If I hadn't been pressed for time I'd have done Omniauth myself. 
> 
> On Tuesday, August 20, 2024 at 8:09:44 AM UTC+1 Darren Jones wrote:
>> Thanks for those replies. Think I’ll give those generators from Rails 8 a 
>> try. 
>> 
>> Some nice ideas there Lee. I’m thinking of setting up a template with some 
>> auth in place to make firing up a demo site easier. 
>> 
>> 
>> 
>> 
>> On Mon, 19 Aug 2024 at 09:53, Lee Hambley <lee.h...@gmail.com> wrote:
>>> It also depends on how far you want to go.
>>> 
>>> In the wider world Google's Zansibar has become quite popular, which is a 
>>> general *authorization* framework. There's also AWS's verified permissions 
>>> where you can centralize rules about who can "verb" which "noun". Zanzibar 
>>> has open source implementations, and all the good docs come from Auth0, but 
>>> it's certainly worth a look.
>>> 
>>> With regards to *authentication* I find myself implementing OAuth2 and OIDC 
>>> on every new project. I just assume that users are coming in with a UUID 
>>> identifier, and a signed token. I don't care where that token comes from as 
>>> long as my app has the relevant public/private key to authenticate it.
>>> 
>>> That means when I'm starting out a new project I can just make broad 
>>> assumptions that a user will have a JWT/cookie and a UUID, and _how_ the 
>>> user gets that token down the line is easy for me to handle later. Then you 
>>> practically get SSO for free. It also makes testing easier, as your app can 
>>> just assume that any valid token with a "sub" claim (subscriber ID) is a 
>>> valid user (who likely has no email/profile/given name, etc) so you avoid a 
>>> lot of boostrapping and factories in tests.
>>> 
>>> It also means that when I setup a new project I make a `/login` page which 
>>> just has a list of 3/4 example users and with a click it sets a cookie/jwt 
>>> and that lets me hope between demo users nice and easily.
>>> 
>>> I know that's pretty left of field for Rails apps where there's often a 
>>> "batteries included" way of doing things, but in my experience it all pays 
>>> off quite quickly.
>>> 
>>> (this idea was honed over a few years coaching startups in Google's 
>>> accelerator, we needed to get product demos up and running ASAP and people 
>>> would always spend a day working on login and lose 20% of the on-site 
>>> tutoring time during the on-site weeks. This approach gave the folks more 
>>> time to work on differentiating features, and also created an easy "demo" 
>>> mode they could show to prospective customers when we sent them out doing 
>>> user interviews)
>>> 
>>> Lee Hambley
>>> http://lee.hambley.name/
>>> +49 (0) 170 298 5667 <tel:+49%20170%202985667>
>>> 
>>> 
>>> On Sun, 18 Aug 2024 at 19:13, Tekin Süleyman <te...@tekin.co.uk> wrote:
>>>> One option worth considering today is to roll your own. Rails has much of 
>>>> the basic building blocks for authentication built directly into the 
>>>> framework now, and Rails 8 will ship with a set of generators that does a 
>>>> decent job of giving you the scaffolding code right there in your app 
>>>> where you can easily reason about it and modify it to suit your needs. You 
>>>> can get access to those generators today from Rails main. 
>>>> https://www.bigbinary.com/blog/rails-8-introduces-a-basic-authentication-generator
>>>> 
>>>> I personally prefer the directness and flexibility of having my 
>>>> authentication code alongside the rest of my code over the indirection of 
>>>> it being loaded from a gem where it’s harder to reason about and more 
>>>> difficult to override/modify behaviour. The downside of course is you are 
>>>> now more directly responsible for ensuring your code is safe and secure.
>>>> 
>>>> The generated code approach is actually what José Valim, the original 
>>>> creator of Devise, now recommends auth-in-a-box approach of libraries like 
>>>> devise (https://dashbit.co/blog/a-new-authentication-solution-for-phoenix) 
>>>> and I believe they now have generators as part of the Phoenix framework. 
>>>> 
>>>> Tekin
>>>> 
>>>>> On 18 Aug 2024, at 3:00 PM, DAZ <daz...@gmail.com> wrote:
>>>>> Devise seems to be the go to gem for auth, but has anyone found any 
>>>>> others that are worth trying?
>>>>> 
>>>>> Rob mentioned Clearance at the talk on Thursday, but I thought he also 
>>>>> said it might be being sunsetted as well.
>>>>> 
>>>>> Are there any others that people have used?
>>>>> 
>>>>> 
>>>>> -- 
>>>>> You received this message because you are subscribed to the Google Groups 
>>>>> "North West Ruby User Group (NWRUG)" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>>>> email to nwrug-member...@googlegroups.com.
>>>>> To view this discussion on the web, visit 
>>>>> https://groups.google.com/d/msgid/nwrug-members/66555abd-7ca8-40d5-9da1-f4fb89864ad6n%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/nwrug-members/66555abd-7ca8-40d5-9da1-f4fb89864ad6n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>> 
>>>> 
>>>> -- 
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "North West Ruby User Group (NWRUG)" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>>> email to nwrug-member...@googlegroups.com.
>>>> To view this discussion on the web, visit 
>>>> https://groups.google.com/d/msgid/nwrug-members/C633FFA4-6A5D-4EE5-8B21-C40C79FADC40%40tekin.co.uk
>>>>  
>>>> <https://groups.google.com/d/msgid/nwrug-members/C633FFA4-6A5D-4EE5-8B21-C40C79FADC40%40tekin.co.uk?utm_medium=email&utm_source=footer>.
>>> 
>>> 
>>> -- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "North West Ruby User Group (NWRUG)" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to nwrug-member...@googlegroups.com.
>>> To view this discussion on the web, visit 
>>> https://groups.google.com/d/msgid/nwrug-members/CAN_%2BVLUsWTTXwKQUaQ-ysyrPUatTnaiDwwup9wt%2BBbOeHKbxkA%40mail.gmail.com
>>>  
>>> <https://groups.google.com/d/msgid/nwrug-members/CAN_%2BVLUsWTTXwKQUaQ-ysyrPUatTnaiDwwup9wt%2BBbOeHKbxkA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "North West Ruby User Group (NWRUG)" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to nwrug-members+unsubscr...@googlegroups.com.
> To view this discussion on the web, visit 
> https://groups.google.com/d/msgid/nwrug-members/b910eff9-72e3-4aa2-9251-2e7c9378751en%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/nwrug-members/b910eff9-72e3-4aa2-9251-2e7c9378751en%40googlegroups.com?utm_medium=email&utm_source=footer>.


-- 
You received this message because you are subscribed to the Google Groups 
"North West Ruby User Group (NWRUG)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nwrug-members+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/nwrug-members/CAPkhurr3RyNY6QExQ8%2BeJCVx3Uir2J73zss03tcL3jFP08fn3Q%40mail.gmail.com
 
<https://groups.google.com/d/msgid/nwrug-members/CAPkhurr3RyNY6QExQ8%2BeJCVx3Uir2J73zss03tcL3jFP08fn3Q%40mail.gmail.com?utm_medium=email&utm_source=footer>.

-- 
You received this message because you are subscribed to the Google Groups 
"North West Ruby User Group (NWRUG)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nwrug-members+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/nwrug-members/73ea274f-5a17-442c-92ae-c48827296627%40app.fastmail.com.

Reply via email to