1575286070
In this Ionic 4 tutorial, we will learn how to create a responsive login and registration form with Angular 8 using Ionic UI components.
We have created authentication tutorials on the following platforms Angular, Firebase, Node, Express and MongoDB.
Creating a login and registration form is merely effortless all thanks goes to the Ionic’s built-in UI components. Ionic makes frontend developers job easy and short to build the login UI.
Our Ionic 4 Angular 8 Form app will have login and registration pages so we will also learn to implement Ionic 4 routing to navigate between components.
To get started with Login & Registration UI, Install the blank Ionic/Angular project by running the following command.
ionic start ionic-form-ui blank --type=angular
Get inside the project directory.
cd ionic-form-ui
Install the lab mode by running the below command.
npm i @ionic/lab --save-dev
Run the command to start your Ionic app.
ionic serve -l
To create the Ionic form we need to generate components for Login, Sign Up, and Forgot Password pages. In Ionic we call pages to components, run the following command to create the pages.
ng generate page login
ng generate page registration
ng generate page forgot-password
We have generated the following components which you can see in your IDE or text-editor as well.
In the home page we will create the log-in and sign-up button, clicking on these button user will navigate to their respective page. In the next step, we will learn how to enable the routing in Ionic 4 app.
import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
const routes: Routes = [
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', loadChildren: () => import('./home/home.module').then( m => m.HomePageModule)},
{
path: 'login',
loadChildren: () => import('./login/login.module').then( m => m.LoginPageModule)
},
{
path: 'registration',
loadChildren: () => import('./registration/registration.module').then( m => m.RegistrationPageModule)
},
{
path: 'forgot-password',
loadChildren: () => import('./forgot-password/forgot-password.module').then( m => m.ForgotPasswordPageModule)
},
];
@NgModule({
imports: [
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
],
exports: [RouterModule]
})
export class AppRoutingModule { }
Add Angular [routerLink]="['...']"
directive in Ionic buttons to enable the navigation between components. Open home.page.html
file and add the following code.
<ion-header>
<ion-toolbar>
<ion-title>
Ionic 4 Form
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content class="auth-form">
<ion-grid>
<ion-row>
<ion-col align-self-center>
<ion-button [routerLink]="['/registration']" expand="block" color="primary">Register</ion-button>
<span class="divider line one-line">or</span>
<span class="already">Already a user?</span>
<ion-button [routerLink]="['/login']" expand="block" color="danger">Sign In</ion-button>
</ion-col>
</ion-row>
</ion-grid>
</ion-content>
Open home.page.scss
file to add the CSS style for the home screen.
.divider {
display: flex;
&:before,
&:after {
content: "";
flex: 1;
}
}
.line {
align-items: center;
margin: 1em -1em;
color: #cccccc;
&:before,
&:after {
height: 1px;
margin: 0 1em;
}
}
.one-line {
&:before,
&:after {
background: #cccccc;
}
}
.auth-form ion-grid,
.auth-form ion-row {
height: 100%;
justify-content: center;
}
.already {
display: block;
text-align: center;
padding-bottom: 10px;
}
To create login form template we need to use the Ionic UI components such as ion-input and ion-button.
Open login.page.html
file and paste the following code in it.
<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-back-button></ion-back-button>
</ion-buttons>
<ion-title>Log In</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<form>
<ion-item lines="full">
<ion-label position="floating">Email</ion-label>
<ion-input type="text" required></ion-input>
</ion-item>
<ion-item lines="full">
<ion-label position="floating">Password</ion-label>
<ion-input type="password" required></ion-input>
</ion-item>
<ion-row>
<ion-col>
<ion-button type="submit" color="danger" expand="block">Sign In</ion-button>
<a [routerLink]="['/forgot-password']" class="small-text">Forgot Password?</a>
</ion-col>
</ion-row>
</form>
</ion-content>
To go back to the previous page we used the ion-back-button component, we build the login form in Ionic 4 / Angular using input, button components.
To create a sign up form we will add the first name, last name, email and password field in the Ionic’s register page and the open the registration.page.html
file and add the following code in it.
<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-back-button></ion-back-button>
</ion-buttons>
<ion-title>Register</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<form>
<ion-item lines="full">
<ion-label position="floating">First name</ion-label>
<ion-input type="text" required></ion-input>
</ion-item>
<ion-item lines="full">
<ion-label position="floating">Last name</ion-label>
<ion-input type="text" required></ion-input>
</ion-item>
<ion-item lines="full">
<ion-label position="floating">Email</ion-label>
<ion-input type="text" required></ion-input>
</ion-item>
<ion-item lines="full">
<ion-label position="floating">Password</ion-label>
<ion-input type="password" required></ion-input>
</ion-item>
<ion-row>
<ion-col>
<ion-button type="submit" color="danger" expand="block">Sign Up</ion-button>
</ion-col>
</ion-row>
</form>
</ion-content>
Next, we will create a forgot password form in the Ionic page. If a user forgets his or her password then he will enter his email address and will get instruction on his registered email id to create a new password.
Open the forgot-password.page.html
file and add the following code inside of it.
<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-back-button></ion-back-button>
</ion-buttons>
<ion-title>Reset Your Password</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<form>
<ion-item lines="full">
<ion-label position="floating">Email</ion-label>
<ion-input type="email" required></ion-input>
</ion-item>
<ion-row>
<ion-col>
<ion-button type="submit" color="danger" expand="block">Send</ion-button>
</ion-col>
</ion-row>
<small>
Please provide the username or email address that you used when you signed
up for your Evernote account.
</small>
</form>
</ion-content>
Thats it for now finally we have completed Ionic 4 Login UI tutorial and learned how to create basic sign-in and sign-up form in Ionic / Angular app. You can get the completed code of this project on this Git repo.
#Angular #Ionic
1655630160
Install via pip:
$ pip install pytumblr
Install from source:
$ git clone https://github.com/tumblr/pytumblr.git
$ cd pytumblr
$ python setup.py install
A pytumblr.TumblrRestClient
is the object you'll make all of your calls to the Tumblr API through. Creating one is this easy:
client = pytumblr.TumblrRestClient(
'<consumer_key>',
'<consumer_secret>',
'<oauth_token>',
'<oauth_secret>',
)
client.info() # Grabs the current user information
Two easy ways to get your credentials to are:
interactive_console.py
tool (if you already have a consumer key & secret)client.info() # get information about the authenticating user
client.dashboard() # get the dashboard for the authenticating user
client.likes() # get the likes for the authenticating user
client.following() # get the blogs followed by the authenticating user
client.follow('codingjester.tumblr.com') # follow a blog
client.unfollow('codingjester.tumblr.com') # unfollow a blog
client.like(id, reblogkey) # like a post
client.unlike(id, reblogkey) # unlike a post
client.blog_info(blogName) # get information about a blog
client.posts(blogName, **params) # get posts for a blog
client.avatar(blogName) # get the avatar for a blog
client.blog_likes(blogName) # get the likes on a blog
client.followers(blogName) # get the followers of a blog
client.blog_following(blogName) # get the publicly exposed blogs that [blogName] follows
client.queue(blogName) # get the queue for a given blog
client.submission(blogName) # get the submissions for a given blog
Creating posts
PyTumblr lets you create all of the various types that Tumblr supports. When using these types there are a few defaults that are able to be used with any post type.
The default supported types are described below.
We'll show examples throughout of these default examples while showcasing all the specific post types.
Creating a photo post
Creating a photo post supports a bunch of different options plus the described default options * caption - a string, the user supplied caption * link - a string, the "click-through" url for the photo * source - a string, the url for the photo you want to use (use this or the data parameter) * data - a list or string, a list of filepaths or a single file path for multipart file upload
#Creates a photo post using a source URL
client.create_photo(blogName, state="published", tags=["testing", "ok"],
source="https://68.media.tumblr.com/b965fbb2e501610a29d80ffb6fb3e1ad/tumblr_n55vdeTse11rn1906o1_500.jpg")
#Creates a photo post using a local filepath
client.create_photo(blogName, state="queue", tags=["testing", "ok"],
tweet="Woah this is an incredible sweet post [URL]",
data="/Users/johnb/path/to/my/image.jpg")
#Creates a photoset post using several local filepaths
client.create_photo(blogName, state="draft", tags=["jb is cool"], format="markdown",
data=["/Users/johnb/path/to/my/image.jpg", "/Users/johnb/Pictures/kittens.jpg"],
caption="## Mega sweet kittens")
Creating a text post
Creating a text post supports the same options as default and just a two other parameters * title - a string, the optional title for the post. Supports markdown or html * body - a string, the body of the of the post. Supports markdown or html
#Creating a text post
client.create_text(blogName, state="published", slug="testing-text-posts", title="Testing", body="testing1 2 3 4")
Creating a quote post
Creating a quote post supports the same options as default and two other parameter * quote - a string, the full text of the qote. Supports markdown or html * source - a string, the cited source. HTML supported
#Creating a quote post
client.create_quote(blogName, state="queue", quote="I am the Walrus", source="Ringo")
Creating a link post
#Create a link post
client.create_link(blogName, title="I like to search things, you should too.", url="https://duckduckgo.com",
description="Search is pretty cool when a duck does it.")
Creating a chat post
Creating a chat post supports the same options as default and two other parameters * title - a string, the title of the chat post * conversation - a string, the text of the conversation/chat, with diablog labels (no html)
#Create a chat post
chat = """John: Testing can be fun!
Renee: Testing is tedious and so are you.
John: Aw.
"""
client.create_chat(blogName, title="Renee just doesn't understand.", conversation=chat, tags=["renee", "testing"])
Creating an audio post
Creating an audio post allows for all default options and a has 3 other parameters. The only thing to keep in mind while dealing with audio posts is to make sure that you use the external_url parameter or data. You cannot use both at the same time. * caption - a string, the caption for your post * external_url - a string, the url of the site that hosts the audio file * data - a string, the filepath of the audio file you want to upload to Tumblr
#Creating an audio file
client.create_audio(blogName, caption="Rock out.", data="/Users/johnb/Music/my/new/sweet/album.mp3")
#lets use soundcloud!
client.create_audio(blogName, caption="Mega rock out.", external_url="https://soundcloud.com/skrillex/sets/recess")
Creating a video post
Creating a video post allows for all default options and has three other options. Like the other post types, it has some restrictions. You cannot use the embed and data parameters at the same time. * caption - a string, the caption for your post * embed - a string, the HTML embed code for the video * data - a string, the path of the file you want to upload
#Creating an upload from YouTube
client.create_video(blogName, caption="Jon Snow. Mega ridiculous sword.",
embed="http://www.youtube.com/watch?v=40pUYLacrj4")
#Creating a video post from local file
client.create_video(blogName, caption="testing", data="/Users/johnb/testing/ok/blah.mov")
Editing a post
Updating a post requires you knowing what type a post you're updating. You'll be able to supply to the post any of the options given above for updates.
client.edit_post(blogName, id=post_id, type="text", title="Updated")
client.edit_post(blogName, id=post_id, type="photo", data="/Users/johnb/mega/awesome.jpg")
Reblogging a Post
Reblogging a post just requires knowing the post id and the reblog key, which is supplied in the JSON of any post object.
client.reblog(blogName, id=125356, reblog_key="reblog_key")
Deleting a post
Deleting just requires that you own the post and have the post id
client.delete_post(blogName, 123456) # Deletes your post :(
A note on tags: When passing tags, as params, please pass them as a list (not a comma-separated string):
client.create_text(blogName, tags=['hello', 'world'], ...)
Getting notes for a post
In order to get the notes for a post, you need to have the post id and the blog that it is on.
data = client.notes(blogName, id='123456')
The results include a timestamp you can use to make future calls.
data = client.notes(blogName, id='123456', before_timestamp=data["_links"]["next"]["query_params"]["before_timestamp"])
# get posts with a given tag
client.tagged(tag, **params)
This client comes with a nice interactive console to run you through the OAuth process, grab your tokens (and store them for future use).
You'll need pyyaml
installed to run it, but then it's just:
$ python interactive-console.py
and away you go! Tokens are stored in ~/.tumblr
and are also shared by other Tumblr API clients like the Ruby client.
The tests (and coverage reports) are run with nose, like this:
python setup.py test
Author: tumblr
Source Code: https://github.com/tumblr/pytumblr
License: Apache-2.0 license
1610191977
Angular 9/10/11 social login with google using angularx-social-login library example. In this tutorial, i will show you step by step on how to implement google social login in angular 11 app.
And also, this tutorial will show you How to login into Angular 10/11 application with google using angularx-social-login library in angular 11 app.
https://www.tutsmake.com/angular-11-google-social-login-example/
#angular 11 google login #angular 11 social-login example #login with google button angular 8/9/10/11 #angular 10/11 login with google #angular 10 social google login #angular social login google
1609902140
Angular 9/10/11 social login with facebook using angularx-social-login library example. In this tutorial, i would love to show you how to integrate facebook social login in angular 11 app.
And you will learn how to add facebook social login button with angular reactive login form.
https://www.tutsmake.com/angular-11-facebook-login-tutorial-example/
#angular 11 facebook login #angular 11 social-login example #login with facebook button angular 8/9/10/11 #angular 10/11 login with facebook #angular 10 social facebook login #angular social login facebook
1610191977
Angular 9/10/11 social login with google using angularx-social-login library example. In this tutorial, i will show you step by step on how to implement google social login in angular 11 app.
And also, this tutorial will show you How to login into Angular 10/11 application with google using angularx-social-login library in angular 11 app.
https://www.tutsmake.com/angular-11-google-social-login-example/
#angular 11 google login #angular 11 social-login example #login with google button angular 8/9/10/11 #angular 10/11 login with google #angular 10 social google login #angular social login google
1608042207
#registration form #login form #sign in form #responsive login #html login page